尝试使用 chrome 扩展替换特定域页面上的 javascript 字符串。
这是我到目前为止所拥有的:
manifest.json文件(当然不是整个文件)
"permissions": [ "tabs", "cookies", "http://*/*" ],
"background": {
"page": "background.html"
},
背景.html文件
<script type="text/javascript" src="js/replace.js"></script><br>
js/replace.js文件
if (window.location.href.indexOf('http://somedomain.com/page') != -1) {
var str="javascriptstring = javascriptstring('javascriptstring');";
var n=str.replace("aaaaaaaaaaaaa;");
}
当我打开页面时,页面上没有任何反应。我查看页面源,但没有任何内容被替换。
我尝试用以下代码替换 js/replace.js 文件来测试它:
if (window.location.href.indexOf('http://somedomain.com/page') != -1) {
alert("Hello World!");
}
但是,当页面加载时,没有弹出警告说你好世界。这意味着脚本可能甚至没有在页面上运行,除非我写错了 Hello World javascript。
我究竟做错了什么?
ps 我的扩展的其余部分(与此无关)工作得很好。
更新:
我尝试了另一种方法,它也不起作用:
loc = window.location.href;
match = loc.match(/somedomain\.com\/page);
if(match)
window.location = loc.replace(bsa, "aaaaa");
更新二:
我改为尝试使用此代码,并使用内容脚本而不是在清单中定义以仅在此 URL 上运行此文件。
loc = window.location.href;
alert("Hello World!");
在页面加载时成功弹出 Hello World ;现在让我们尝试进行替换。
更新三:
我收到 Hello World 弹出窗口,这意味着脚本正在运行,但代码没有被替换。
尝试 1:
loc = window.location.href;
alert("Hello World!");
window.location = loc.replace(texttext, "aaaaa");
结论:
“Hello World”弹出窗口:成功
代码已替换:失败
--
尝试 2:
loc = window.location.href;
alert("Hello World!");
loc.replace(texttext, "aaaaa");
结论:
“Hello World”弹出窗口:成功
代码已替换:失败
--
尝试 3:
loc = window.location.href;
alert("Hello World!");
texttext = "aaaaa";
结论:
“Hello World”弹出窗口:成功
代码已替换:失败
--
尝试 4:
loc = window.location.href;
alert("Hello World!");
var str="texttext";
var n=str.replace("texttext","aaaaa");
结论:
“Hello World”弹出窗口:成功
代码已替换:失败
所以还是不行。我究竟做错了什么?