Javascript 将用户脚本从Firefox/Chrome转换为Internet Explorer 9?
我不是计算机科学或编程专业的学生,但我一直在为我的父母寻找脚本,他们是外国人,不懂互联网术语 我在userscripts.org上找到了下面的脚本(作者的功劳),它就像一个符咒。然而,我的父母太固执了,无法从IE9切换到Chrome或Firefox,所以我下载了IE7Pro并在那里安装了脚本 这里的问题是IE9上安装的userscript似乎根本不起作用,我正试图找出原因。Chrome/Firefox和internetexplorer的javascript有基本区别吗 我如何着手修复这些,使其在IE中工作?我只上过C编程入门课,在这个领域没有什么经验,所以如果有人能简单地给我解释一下,那就太好了 下面是代码供参考,如果有人能指出它不起作用的地方/原因,那将非常有帮助。它不会太长,而且可以节省我无数个小时的时间来学习一些我并不真正需要学习的东西。非常感谢你Javascript 将用户脚本从Firefox/Chrome转换为Internet Explorer 9?,javascript,internet-explorer,internet-explorer-9,userscripts,document.evaluate,Javascript,Internet Explorer,Internet Explorer 9,Userscripts,Document.evaluate,我不是计算机科学或编程专业的学生,但我一直在为我的父母寻找脚本,他们是外国人,不懂互联网术语 我在userscripts.org上找到了下面的脚本(作者的功劳),它就像一个符咒。然而,我的父母太固执了,无法从IE9切换到Chrome或Firefox,所以我下载了IE7Pro并在那里安装了脚本 这里的问题是IE9上安装的userscript似乎根本不起作用,我正试图找出原因。Chrome/Firefox和internetexplorer的javascript有基本区别吗 我如何着手修复这些,使其在
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]);
}
}
}
var单词={
///////////////////////////////////////////////////////
//语法:“搜索词”:“替换词”,
“你的a”:“你是a”,
“im*o”:“在我诚实的意见中”,
///////////////////////////////////////////////////////
"": ""
};
//////////////////////////////////////////////////////////////////////////////
//这就是真正的代码所在
//不要编辑以下内容
//////////////////////////////////////////////////////////////////////////////
//JoeSimmons公司的prepareRegex
//用于获取字符串并准备在新RegExp()中使用
String.prototype.prepareRegex=函数(){
返回此。替换(/([\[\]\^\&\$\.\(\)\?\/\\\+\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\;
};
//函数决定父标记是否替换其文本
功能isOkTag(标签){
返回(
新正则表达式(
“(,“+tag+”,)|(,“+tag+”$)”,
“g”
).test(“、pre、blockquote、代码、输入、按钮、文本区域”)
)==假;
}
//将“words”JSON对象转换为数组
var regexs=新数组(),
替换=新数组();
for(字中的var字){
如果(单词!=“”){
regexs.push(新的RegExp(word.prepareRegex().replace(/(\\)?\*/g,函数(e){
返回((e!=“\\*”?[^]*”:“*”);
})、“gi”);
替换。推(字[字]);
}
}
//更换
var text=document.evaluate(
“//text()[normalize space(.)!=””,document.body,null,6,null
),
text=“”,
len=regexs.length;
对于(var i=0,l=text.snapshotLength;(this_text=text.snapshotItem(i));i++){
if(isOkTag(this_text.parentNode.tagName)&&(text=this_text.textContent)){
对于(变量x=0;x在IE上不受支持。不知道脚本的作用,因此为您的家人安装真正的浏览器可能更容易
可能会对您有所帮助。对Internet Explorer的用户脚本支持参差不齐,而且很快就会过时。也就是说
但是IE javascript和Chrome、Firefox等的javascript可能会有很大的不同。
阅读该教程,并按照列出的指导原则诚实地尝试移植代码。Ok,有意义。脚本的要点是搜索网页中的特定文本,并替换它以显示您指定的内容。我会四处搜索,我想找到一个IE解决方案来实现这一点,他们真的不想切换浏览器。这需要很多代码来解决。还有,我们需要誓言吗?抱歉,这不是我的代码,但我意识到事后我可以很容易地替换誓言