私はコンピューター サイエンスやプログラミングを専攻していない学生ですが、外国人でインターネット用語を理解していない両親のためにスクリプトを探していました。
userscripts.org で以下のスクリプトを見つけました (すべて作者の功績によるものです)。しかし、私の両親は頑固すぎて IE9 から Chrome や Firefox に切り替えることができないので、IE7Pro をダウンロードしてそこにスクリプトをインストールしました。
ここでの問題は、IE9 にインストールされているユーザー スクリプトがまったく機能しないように見えることであり、その理由を突き止めようとしています。Chrome/Firefox と Internet Explorer の JavaScript に基本的な違いはありますか?
これらを修正して IE で動作させるにはどうすればよいですか? 私は C プログラミングの入門クラスを受講しただけで、この分野の経験はほとんどないので、誰かが簡単に説明してくれると助かります。
これが参照用のコードです。誰かがどこで/なぜそれが機能しないかを指摘できれば、それは大きな助けになります。長すぎず、本当に学ぶ必要のないことを学ぶのに数え切れないほどの時間を節約できます. どうもありがとう。
var words = {
///////////////////////////////////////////////////////
// Syntax: 'Search word' : 'Replace word',
"your a": "you're a",
"im*o": "in my honest opinion",
///////////////////////////////////////////////////////
"": ""
};
//////////////////////////////////////////////////////////////////////////////
// This is where the real code is
// Don't edit below this
//////////////////////////////////////////////////////////////////////////////
// prepareRegex by JoeSimmons
// Used to take a string and ready it for use in new RegExp()
String.prototype.prepareRegex = function () {
return this.replace(/([\[\]\^\&\$\.\(\)\?\/\\\+\{\}\|])/g, "\\$1");
};
// Function to decide whether a parent tag will have its text replaced or not
function isOkTag (tag) {
return (
new RegExp (
"(," + tag + ",) | (," + tag + "$)",
"g"
).test (",pre,blockquote,code,input,button,textarea")
) == false;
}
// Convert the "words" JSON object to an Array
var regexs = new Array(),
replacements = new Array();
for (var word in words) {
if (word != "") {
regexs.push (new RegExp (word.prepareRegex ().replace (/(\\)?\*/g, function (e) {
return ((e !== "\\*") ? "[^ ]*" : "*");
} ), "gi"));
replacements.push (words[word]);
}
}
// Do the replacement
var texts = document.evaluate (
".//text()[normalize-space(.)!='']", document.body, null, 6, null
),
text = "",
len = regexs.length;
for (var i = 0, l = texts.snapshotLength; (this_text = texts.snapshotItem(i)); i++) {
if (isOkTag (this_text.parentNode.tagName) && (text = this_text.textContent) ) {
for (var x = 0; x < len; x++) {
text = this_text.textContent = text.replace(regexs[x], replacements[x]);
}
}
}