Chrome API:使用Content.js中的方法重新加载当前标签

时间:2014-02-09 03:57:38

标签: google-chrome google-chrome-extension google-chrome-devtools

我想通过扫描内容来重新加载网页的内容。我在javascript中设计了这个方法,看看网址中是否有特定的搅拌

Content.Js

function init() {
    var d = document.location.href;
    d = toggleDevMode(d);
    return d;
}

function toggleDevMode(url) {
    var hasDevModeOn = '?core.apexpages.devmode.url=1';
    if (url.indexOf(hasDevModeOn) != -1) {
        //toggle 
        url = url.substring(0, url.lastIndexOf(hasDevModeOn));
    } else if (url.indexOf("salesforce.com") == -1) {
        url = url + hasDevModeOn;
    } else {
        url = url;
    }
    return url;

}

我想要的功能

我希望如果用户点击图标,它会运行我在content.js onClick Event中定义的脚本调用方法并检查网址。

根据此处定义的逻辑,将修改网址。

我想用修改后的网址重新加载标签。我尝试了这段代码

chrome.browserAction.onClicked.addListener(function (activeTab) {
    var newURL = init();
    chrome.tabs.create({
        url: newURL
    });
});

但它不起作用。请告知我如何调用这些方法onclick事件

1 个答案:

答案 0 :(得分:1)

您不需要内容脚本来执行此操作。放弃init功能。将您的toggleDevMode函数与以下代码一起放在后台脚本中。确保您的清单指定activeTab权限。

chrome.browserAction.onClicked.addListener(function (activeTab) {
    var newURL = toggleDevMode(activeTab.url);
    chrome.tabs.update({
        url: newURL
    });
});

编辑:通过以下内容替换您的清单中的当前permissions部分:

"permissions": [
    "activeTab"
],