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

时间:2013-08-04 23:41:15

标签: javascript google-chrome-extension

尝试使用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。

我做错了什么?

P.S。我的扩展的其余部分(与此无关)工作得很好。


更新

我尝试了另一种方法,无效

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”弹出窗口:SUCCESS
代码替换:失败

-

尝试2:

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

结论:
“Hello World”弹出窗口:SUCCESS
代码替换:失败

-

尝试3:

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

结论:
“Hello World”弹出窗口:SUCCESS
代码替换:失败

-

尝试4:

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

结论:
“Hello World”弹出窗口:SUCCESS
代码替换:失败


所以仍然没有好处。我做错了什么?

1 个答案:

答案 0 :(得分:1)

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

javascriptstring = 'javascriptstring';
希望在特定域加载时运行js文件中的