Kei*_*hly 231 jquery greasemonkey
我尝试了这一行,但它不起作用:
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js
Run Code Online (Sandbox Code Playgroud)
jQuery根本不适用于Greasemonkey.还有其他方法在Greasemonkey中使用jQuery吗?
-
对于遇到相同问题的所有人,您必须将文件上传到greasespot,然后从那里安装.
"创建新脚本"选项不起作用!
Rob*_*edy 186
也许你没有最近版本的Greasemonkey.它补充了0.8版本@require.
// @require https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js
Run Code Online (Sandbox Code Playgroud)
如果你没有0.8,那么使用Joan Piedra描述的手动向script页面添加元素的技术.
版本0.8和0.9之间,@require在第一次安装脚本时才会处理.如果更改了所需脚本的列表,则需要卸载脚本并重新安装; Greasemonkey在安装时下载所需的脚本,然后使用缓存的副本.
从0.9开始,Greasemonkey的行为发生了变化(以解决与切向相关的问题),以便它现在在每次编辑后加载所需的脚本; 不再需要重新安装脚本.
Hen*_*ger 79
如果你想在已经包含它的网站上使用jQuery,这就是要走的路(受BrunoLM的启发):
var $ = unsafeWindow.jQuery;
Run Code Online (Sandbox Code Playgroud)
我知道这不是问题的原始意图,但它越来越成为一种常见的情况,你没有明确排除这种情况.;)
Dan*_*Lew 21
在Greasemonkey脚本中包含整个jQuery绝对没有错.只需获取源代码,并将其放在用户脚本的顶部.不需要制作脚本标签,因为您已经在执行JavaScript了!
用户只能一次下载脚本,因此脚本的大小不是一个大问题.另外,如果你想你的Greasemonkey脚本在非转基因的环境(如Opera的GM式的用户脚本,或Greasekit在Safari)工作,这将帮助不使用GM-独特的构造,如@require.
Rob的解决方案是正确的 - @require与jQuery库一起使用,并确保重新安装脚本以便处理指令.
我认为值得补充的一件事是,除了AJAX方法之外,一旦将其包含在脚本中,就可以正常使用jQuery .默认情况下,jQuery查找XMLHttpRequest,它在Greasemonkey上下文中不存在.我写了一个解决方法,你在其中为GM_xmlhttpRequest(Greasemonkey版本的XHR)创建一个包装器,并使用jQuery ajaxSetup()指定你的包装版本作为默认值.一旦你这样做,你可以使用$.get和$.post往常一样.
你也可能遇到jQuery的问题,$.getJSON因为它使用<script>标签加载JSONP .这会导致错误,因为jQuery在Greasemonkey窗口的范围内定义了回调函数,并且加载的脚本在主窗口的范围内查找回调.最好的办法是改为使用$.get并解析结果JSON.parse().
| 归档时间: |
|
| 查看次数: |
115241 次 |
| 最近记录: |