0

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 というアラートは表示されません。これは、Hello World JavaScript を間違って記述しない限り、おそらくスクリプトがページ上で実行されていないことを意味します。

私は何を間違っていますか?

ps私の拡張機能の残りの部分(これとは関係ありません)は問題なく動作します。


アップデート:

別の方法を試しましたが、これも機能していません:

loc = window.location.href;
match = loc.match(/somedomain\.com\/page);
if(match)
    window.location = loc.replace(bsa, "aaaaa");

更新 2:

代わりにこのコードを試し、マニフェストで定義する代わりにコンテンツ スクリプトを使用して、このファイルをこの URL でのみ実行しました。

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

ページの読み込み時に Hello World ポップアップを取得することに成功しました。それでは、置換を実行してみましょう。


更新 3:

スクリプトが実行されていることを意味する Hello World ポップアップが表示されますが、コードは置き換えられていません。

試行 1:

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

結論:
"Hello World" ポップアップ: SUCCESS
コードの置き換え: FAIL

--

試行 2:

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

結論:
"Hello World" ポップアップ: SUCCESS
コードの置き換え: FAIL

--

試行 3:

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

結論:
"Hello World" ポップアップ: SUCCESS
コードの置き換え: FAIL

--

試行 4:

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

結論:
"Hello World" ポップアップ: SUCCESS
コードの置き換え: FAIL


だからまだダメ。私は何を間違っていますか?

4

1 に答える 1