【发布时间】:2014-05-29 00:34:08
【问题描述】:
tl;博士
不要在 Userscript 中使用外部库的奇异动态注入。 @require他们。
原始问题
我正在尝试使用以下脚本修改this page:
console.log("run");
!function(){var e=document.createElement("SCRIPT")
e.src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js",e.type="text/javascript",document.getElementsByTagName("head")[0].appendChild(e)
var t=function(e){window.jQuery?e(jQuery):window.setTimeout(function(){t(e)},100)}
t(function(e){e(".title").children().each(function(){this.href="/"+this.href.split("'")[1]})})}()
该脚本在控制台中运行良好(尝试一下),将打开窗口的链接转换为 URL hrefs。但是,Tampermonkey 中的相同脚本不起作用(并且控制台中显示调试行,表明该脚本确实在运行):
这些是特定脚本的设置:
我做错了什么?如何使脚本在 Tampermonkey 中运行?
检查语法后(见 cmets):
将一些逗号更改为分号 --- 这是一团糟。
【问题讨论】:
-
您是否单击了检查语法错误按钮?它直接在“更新网址”的左侧。
-
@Vedaad,是的,它确实说语法错误(见编辑),但代码“有效”。它是合法的 JavaScript —— 它可以在控制台中运行。
-
为什么不用分号替换这些逗号呢?至少你可以排除这是一个原因
-
@Phil 我试过了,每次都重新检查语法。显然语法解析器有问题。中途我就放弃了。见编辑。
-
@Phil 你能自己试试代码吗,至少在控制台里?
标签: javascript google-chrome tampermonkey