需要使用chrome扩展替换特定域页面上的javascript字符串



尝试使用chrome扩展替换特定域页面上的javascript字符串。

以下是我目前所拥有的:


manifest.json文件(当然不是整个文件)

"permissions": [ "tabs", "cookies", "http://*/*" ],
"background": {
    "page": "background.html"
},


background.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写错了。

我做错了什么

附言:我的扩展的其余部分(与此无关)运行良好。


更新:

我尝试了另一种方法,也是不起作用

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弹出窗口,这意味着脚本正在运行,但代码没有被替换。

TRY 1:

loc = window.location.href;
alert("Hello World!");
window.location = loc.replace(texttext, "aaaaa");

结论:
"Hello World"弹出窗口:成功
替换的代码:失败

--

TRY 2:

loc = window.location.href;
alert("Hello World!");
loc.replace(texttext, "aaaaa");

结论:
"Hello World"弹出窗口:成功
替换的代码:失败

--

TRY 3:

loc = window.location.href;
alert("Hello World!");
texttext = "aaaaa";

结论:
"Hello World"弹出窗口:成功
替换的代码:失败

--

TRY 4:

loc = window.location.href;
alert("Hello World!");
var str="texttext";
var n=str.replace("texttext","aaaaa");

结论:
"Hello World"弹出窗口:成功
替换的代码:失败


所以还是不行。我做错了什么?

您需要使用内容脚本,这是文档,http://developer.chrome.com/extensions/content_scripts.html.您也错误地使用了"replace()"方法。该方法只会改变应用它的任何变量的值,在您的情况下为"str"。如果您想更改"javascriptstring"的值,您可以只放置

javascriptstring = 'javascriptstring';

在js文件中,希望在特定域加载时运行。

最新更新