我有一个chrome扩展,我想操纵GitHub上的一些DOM。当我刷新任何给定页面时,所有工作都按预期工作,但如果我通常导航到该页面,则脚本不会被执行。
的manifest.json
{
"manifest_version": 2,
"name": "Name",
"description": "Detailed description",
"version": "1.3.5",
"content_scripts": [{
"matches": ["https://github.com/*/*/issues/*"],
"js": ["jquery-2.1.0.min.js", "index.js"]
}],
"browser_action": {
"default_icon": "icon.png"
},
"permissions": [
"activeTab",
"https://ajax.googleapis.com/"
]
}
index.js
$(document).ready(function() {
// DOM manipulating code
// removed for brevity
});
答案 0 :(得分:1)
当您从另一个页面导航到GitHub页面时,页面中的容器会更新,而不是整个页面。
所以,根据我的经验...如果你从repo的主页面开始并切换到问题页面,扩展程序并不总是注意到这一变化。因此,我建议将清单matches
更改为所有github,而不仅仅是问题:
{
"manifest_version": 2,
"name": "Name",
"description": "Detailed description",
"version": "1.3.5",
"content_scripts": [{
"matches": ["https://github.com/*"],
"js": ["jquery-2.1.0.min.js", "index.js"]
}],
"browser_action": {
"default_icon": "icon.png"
},
"permissions": [
"activeTab",
"https://ajax.googleapis.com/"
]
}
如果这不起作用,那么在您的代码中,监视文档以查找“pjax:end”事件:
document.addEventListener("pjax:end", function() {
// run code/call function
});