代码是从Chrome控制台执行的,而不是从用户脚本执行的

时间:2018-10-20 16:48:41

标签: javascript jquery

如标题所示,我尝试通过Userscript运行以下代码无济于事。弹出“正在启动”警报,然后什么也没有发生,在控制台中什么也没有,也没有点击。我已经检查了jQuery是否已加载。仅当用户脚本仍包含“ $”的定义时,才可以通过控制台运行代码,否则只能通过控制台运行。我尝试在其上运行的网站使用的是jQuery 1.11.1版本,这是一个问题,因为我正在加载最新的?

    // ==UserScript==
// @name         Powerball Bot
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Beat the odds
// @author       Me.
// @match        http://vladgotlib.com/powerball/
// @grant        none
// @require http://code.jquery.com/jquery-latest.min.js
// ==/UserScript==

$(function(){
    var rect;
    alert('Starting');
    var $=jQuery.noConflict();
    setInterval(function() {
        var rect = $('#' + 'r_w' + Math.floor(Math.random() * 39) + 'h' +Math.floor(Math.random() * 31) + '_');
        rect.click();
    }, 100)
});

我一直在使用以下代码段通过控制台运行它:

setInterval(function() {
        var rect = $('#' + 'r_w' + Math.floor(Math.random() * 39) + 'h' +Math.floor(Math.random() * 31) + '_');
        rect.click();
    }, 100)

1 个答案:

答案 0 :(得分:0)

因此,我对jQuery版本的评论实际上比我想象的要重要。使用@vlaz和@FrankerZ的建议通过以下方式调用函数:

(function($){

})(jQuery);

并删除:

var $=jQuery.noConflict();

和:

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

彻底解决了这个问题。