Đang cố gắng tải jquery vào tập lệnh tampermonkey


132

Tôi đang viết một tập lệnh đăng nhập vào mạng đại học của tôi khi trang đăng nhập được tải.

Mã này trông như sau

// ==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);

    });

Bảng điều khiển hiển thị lỗi thông báo

$ is not defined

Ai đó có thể cho tôi biết những gì đang xảy ra ở đây?

Câu trả lời:


303

Bạn cần phải có một @requiretiêu đề tập lệnh người dùng để tải jQuery. Cái gì đó như:

// @require http://code.jquery.com/jquery-3.4.1.min.js

(Chọn phiên bản mong muốn của bạn từ danh sách các phiên bản có sẵn của jQuery )


18
Vui lòng không sử dụng jquery-latest. blog.jquery.com/2014/07/03/dont-use-jquery-latest-js

8
Được cảnh báo rằng điều này có thể can thiệp vào định nghĩa riêng của trang$
Owen

1
@Owen và làm thế nào chúng ta sẽ đối phó với điều đó
Menasheh

@Menasheh jQuery.noConflict () .
Dan Atkinson

Ngoài ra, hãy lưu ý rằng jQuery của riêng trang có thể xuất hiện và ghi đè lên @requirephiên bản d. noConflictcũng sẽ giúp với điều đó.
jingleraula
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.