相关疑难解决方法(0)

为什么chrome.tabs.query()在Chrome扩展程序中使用RequireJS调用时会返回标签的URL?

我有一个简单的Chrome扩展程序,可添加浏览器操作.当扩展程序的弹出窗口打开时,它需要访问当前选项卡的URL.由于它不需要访问所有选项卡,我只是拥有activeTab清单中指定的权限:

{
    "manifest_version": 2,
    "name": "RequireJS Test",
    "version": "0.0.1",
    "description": "Test RequireJS and the activeTab permission.",
    "permissions": [
        "activeTab"
    ],
    "browser_action": {
        "default_popup": "popup.html"
    },
    "web_accessible_resources": [
        "js/*",
        "html/*",
        "css/*",
        "img/*"
    ]
}
Run Code Online (Sandbox Code Playgroud)

理论上,这应该让弹出窗口访问活动选项卡的URL,但是当我从require()弹出窗口的main.js文件中的调用中查询选项卡时,不会返回URL :

require([], function() {
    chrome.tabs.query({"active": true, "lastFocusedWindow": true}, function (tabs) {
        var url = tabs[0].url;
        console.log("URL from main.js", url);
    });

    console.log("URL from global var accessed in main.js", tabURL);
});
Run Code Online (Sandbox Code Playgroud)

控制台显示undefinedURL.但是,如果我从一个不使用的普通.js文件中进行相同的调用require(),它可以正常工作:

chrome.tabs.query({"active": true, "lastFocusedWindow": true}, function (tabs) …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome google-chrome-extension requirejs

15
推荐指数
2
解决办法
3万
查看次数

Google Chrome扩展程序可获取页面信息

我正在制作Google Chrome扩展程序,我需要获取当前页面的网址和标题.我怎样才能做到这一点?

javascript google-chrome-extension

9
推荐指数
2
解决办法
1万
查看次数

Chrome扩展程序:如何从background.html获取当前网页网址

根据我的知识,不可能直接通过获取tab.url(仅在popup.html中可能)并且进行消息传递也需要打开popup.html.反正有没有绕过这个并从background.html获取当前页面的网址?

我最好的镜头是消息传递,我在background.html中使用了这段代码

var bg = chrome.extension.getPopupPage(); 
var myURL = bg.myURL; 
Run Code Online (Sandbox Code Playgroud)

然后在popup.html我有:

 chrome.tabs.getSelected(null, function(tab) {
    var myURL = tab.url;
})
Run Code Online (Sandbox Code Playgroud)

无论如何,上述根本不起作用.有人知道这样做的方法而不必实际打开弹出窗口吗?

javascript url google-chrome-extension

8
推荐指数
1
解决办法
2万
查看次数

在Chrome扩展程序中显示当前网址

做了一些研究之后,我提出的代码就是:

var outUrl;
// first get the windowid
chrome.windows.getCurrent(function(window) {
    // then get the current active tab in that window
    chrome.tabs.query({
        active: true,
        windowId: window.id
    }, function (tabs) {
        var tab = tabs[0];
        document.write(tab.url)
    });
});
Run Code Online (Sandbox Code Playgroud)

这是在我的弹出式html文件中调用的javascript文件中.但它不显示当前网站的URL,而是显示任何内容.

我在这个和其他网站上发现了很多关于这个的帖子,但是我还没有能够实现任何所谓的解决方案.

任何帮助将不胜感激.

javascript tabs google-chrome google-chrome-extension

7
推荐指数
2
解决办法
2万
查看次数

chrome.tabs.getCurrent()或tabs.query()

两种方法都Uncaught TypeError: Cannot read property 'query' of undefined对我的内容脚本产生相同的错误...我已经看过如何使用javascript在chrome扩展程序中获取当前Tab的URL,以及如何使用chrome.tabs.getCurrent来获取页面对象。 Chrome扩展程序?尽管我仍然不确定自己做错了什么。

manifest.json

{
  "name": "Extension Tester",
  "version": "0.0.1",
  "manifest_version": 2,
  "description": "Tester",
  "permissions": [
    "tabs"
  ],
  "content_scripts": [
    {
      "matches": ["https://www.google.com/"],
      "js": [
        "inject.js"
      ]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

inject.js

chrome.tabs.query({ currentWindow: true, active: true }, function (tabs) {
  console.log(tabs[0].id);
});
Run Code Online (Sandbox Code Playgroud)

要么

chrome.tabs.getCurrent(function (tab) {
  console.log(tab.id);
});
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome-extension

6
推荐指数
1
解决办法
1万
查看次数

在弹出窗口中获取当前窗口(Google Chrome扩展程序)

我正在构建Google Chrome扩展程序,我正在尝试在弹出窗口中显示所选窗口.(我说的是当你点击扩展图标时显示的弹出窗口).

我试图使用文档,但我不太了解它.具体来说,我试图使用:

chrome.windows.getCurrent(function(w) {
    chrome.windows.get(w.id,
    function (response){
        alert(response.location.href);
    });
});
Run Code Online (Sandbox Code Playgroud)

但它没有用.有任何想法吗?

谢谢(抱歉,如果英语不好).

google-chrome-extension

1
推荐指数
1
解决办法
7356
查看次数