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
だからまだダメ。私は何を間違っていますか?