Convert userscript from Firefox/Chrome to Internet Explorer



我是一名不在计算机科学或编程中的学生,但我一直在寻找外国父母且不了解互联网术语的脚本。

我在usercripts.org上找到了下面的脚本(全部归功于作者),它的工作就像魅力。但是,我的父母太固执了,无法从IE9转到Chrome或Firefox,因此我下载了IE7Pro并将脚本安装在此处。

这里的问题是,在IE9上安装的用户criptment似乎根本不起作用,我正在尝试找出原因。Chrome/Firefox vs 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]);
        }
    }
}

document.evaluate不支持IE。不知道该脚本的作用,因此为您的人们安装真正的浏览器可能会更容易。

也许jQuery可以帮助您。

对Internet Explorer的Userscript支持次数很广,并且迅速变得过时。也就是说,有些人报告了一些成功获得IE7Pro 与IE9合作的成功。

但是,即Chrome,Firefox等的JavaScript和JavaScript可以完全不同。
iescripts.org 的教程中,将用户文字移植到IE上有整个部分(尤其是请参见第5节)。

阅读该教程,并按照列出的指南进行诚实的尝试移植代码。

相关内容

最新更新