试图将 jquery 加载到 Tampermonkey 脚本中
Posted
技术标签:
【中文标题】试图将 jquery 加载到 Tampermonkey 脚本中【英文标题】:Trying to load jquery into tampermonkey script 【发布时间】:2014-09-05 09:28:59 【问题描述】:我正在编写一个脚本,该脚本会在登录页面加载时登录我的大学网络。
代码如下
// ==UserScript==
// @name My Fancy New Userscript
// @namespace http://use.i.E.your.homepage/
// @version 0.1
// @description enter something useful
// @match <College login page>
// @copyright 2012+, You
// ==/UserScript==
$(document).ready(function()
var usr=document.getElementsByName("username");
var pass = document.getElementByName("password");
usr.value="usrname";
pass.value="password";
var submitButton = document.querySelector ('input[type="submit"][value="Login"]');
var clickEvent = document.createEvent ('MouseEvents');
clickEvent.initEvent ('click', true, true);
submitButton.dispatchEvent (clickEvent);
);
控制台显示错误提示
$ is not defined
谁能告诉我这里发生了什么?
【问题讨论】:
【参考方案1】:您需要在用户脚本标头中有一个@require
才能加载 jQuery。比如:
// @require http://code.jquery.com/jquery-3.4.1.min.js
(从list of available versions of jQuery中选择您想要的版本)
【讨论】:
请不要使用jquery-latest
。 blog.jquery.com/2014/07/03/dont-use-jquery-latest-js
请注意,这可能会干扰页面自身对$
的定义
@Owen 以及我们将如何处理
@Menasheh jQuery.noConflict().
还要注意页面自己的 jQuery 可能会出现并破坏 @require
d 版本。 noConflict
也会对此有所帮助。【参考方案2】:
对于未来的谷歌员工,
如果您使用了上述方法,但您的脚本似乎仍然没有加载 jQuery,请尝试查看空格,并尝试将缩进与标题的其余部分匹配。显然缩进很重要。
错误:
// ==UserScript==
// @name New Userscript
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://***.com/*
// @require http://code.jquery.com/jquery-3.4.1.min.js
// @grant none
// ==/UserScript==
正确:
// ==UserScript==
// @name New Userscript
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://***.com/*
// @require http://code.jquery.com/jquery-3.4.1.min.js
// @grant none
// ==/UserScript==
【讨论】:
以上是关于试图将 jquery 加载到 Tampermonkey 脚本中的主要内容,如果未能解决你的问题,请参考以下文章