试图将 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 可能会出现并破坏 @required 版本。 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 脚本中的主要内容,如果未能解决你的问题,请参考以下文章

将 jQuery 加载到 chrome 扩展中

如何将 ASPX 页面加载到 JQuery 对话框中

CKEDITOR mathjax公式在jquery中未正确加载

带有表单数据的 Jquery .load()

使用 Jquery 加载一组图像

将 Jquery UI 添加到 XSLTForms