3

我正在为 facebook 创建一个 chrome 扩展。我需要在每个页面上执行相同的内容脚本。它在第一次加载时运行良好,但是当我通过链接(作为个人资料名称)进入 Facebook 页面时它不起作用。我读到这是因为除了第一次之外没有加载整个页面。所以脚本不会再次执行。但是我不知道如何解决这个问题。

这是我的 manifest.json :

{
    "name" : "name",
    "version" : "1.0",
    "manifest_version":1,
    "description" : " description ",
    "content_scripts" : [
            {
              "matches" : ["http://www.facebook.com/*"],
              "js" : ["test.js"]
            }   
    ] ,
    "all_frames":"true"  
}

我希望有人能给出答案,因为我真的需要每次都在每个页面上执行脚本(test.js,它不会更改 html 或 css)!

感谢您未来的回答。

4

1 回答 1

4

我个人通过使用 Chrome 的 webRequest API 解决了这个问题。您需要添加一个监听器来跟踪 AJAX 生成的 HTTP 调用。这基本上是我使用的代码:

chrome.webRequest.onCompleted.addListener(function(details) {
    var url = document.createElement('a');
    url.href = details.url;
    if (url.search && url.search.indexOf('ajaxpipe=1') !== -1) {
        console.log('New page via AJAX.');
        chrome.tabs.executeScript({'file' : 'test.js'});
    }
}, {urls : ["*://*.facebook.com/*"]});
于 2013-07-20T21:26:15.483 回答