Ent*_*ity 5 google-chrome-extension
有一个网站在JS文件中有一个错误.JS文件仅在一个地方被引用:
<script type="text/javascript" charset="utf-8" src="/r/js/no-closure/dialogs.js?v=2"></script>
Run Code Online (Sandbox Code Playgroud)
我已经下载了JS文件并修复了错误.有什么方法可以通过镀铬扩展覆盖/r/js/no-closure/dialogs.js
我的dialogs_fixed.js
?
我试过(in background.js
):
var script = $('[src*="dialogs.js"]');
script.attr("src", "dialogs_patch.js");
Run Code Online (Sandbox Code Playgroud)
没运气.
你不需要使用实验性的webRequest,你可以使用beforeload事件.像这样的东西应该工作....
String.prototype.endsWith = function(pattern) {
var d = this.length - pattern.length;
return d >= 0 && this.lastIndexOf(pattern) === d;
};
document.addEventListener('beforeload', function(event) {
if (event.url.endsWith("/r/js/no-closure/dialogs.js?v=2")){event.srcElement.src=chrome.extension.getURL("dialogs.js");}
}, true);
Run Code Online (Sandbox Code Playgroud)
..在内容脚本中输入您感兴趣的页面.并确保在页面添加之前加载此内容脚本...
"run_at" : "document_start"
Run Code Online (Sandbox Code Playgroud)
...到您的内容脚本字段....
http://code.google.com/chrome/extensions/content_scripts.html
编辑 Altho应该注意的是,从Chrome 17开始,Web请求api不再是实验性的,是进行重定向的好方法.
你应该能够用实验webRequest
api 阻止它:
chrome.experimental.webRequest.onBeforeRequest.addListener(function(details) {
return {cancel: true};
}, {urls: ["http://www.example.com/r/js/no-closure/dialogs.js"]}, ["blocking"]);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2763 次 |
最近记录: |