我正在为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)!
感谢您将来的答案。
答案 0 :(得分:3)
我个人通过使用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/*"]});