$未定义Javascript

时间:2017-05-11 20:14:59

标签: javascript tampermonkey

我正在编写目前正在使用tampermonkey的代码,但我无法解决为什么我在google chrome的控制台中出现此错误,"执行脚本' PalaceBOT&# 39;失败! $未定义",我有另一个使用相同主体的脚本,我没有遇到这些问题。

脚本:

// ==UserScript==
// @name         SupremeBOT
// @namespace
// @version      0.1
// @description
// @author       @alfiefogg_
// @match        http://www.supremenewyork.com/shop/*
// @exclude      http://wwww.supremenewyork.com/shop/cart
// @require      https://gist.github.com/raw/2625891/waitForKeyElements.js
// @require      http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js
// @grant        none
// ==/UserScript==
var mySize = "large"; //Change to appropriate size
var productSort = "accessories"; //Change to appropriate size
(function() {
    var articles = $(".product-grid-item clearfix");
    if(productSort != "all"){
        for(var i = 0; i < articles.length;i++)
        {
            var category = $(articles[i]).find("a").attr("href");
            if(category.indexOf(productSort) == -1){
                articles[i].remove();
                document.getElementsByClassName("product-grid-item clearfix")[4].click();
            }
        }
    }
    waitForKeyElements("#img-main", exe);
})();
function exe(){
    selectSize();
    goCheckout();
}
function goCheckout(){
    var x = document.getElementById("add-remove-buttons");
    var z = x.getElementsByClassName("button")[0];

    if(z.className != "button remove"){
        z.click();
        setTimeout(goCheckout ,100);
    }else{
        window.location = "https://www.supremenewyork.com/checkout";
    }
}
function selectSize(){
    var sizeObj = document.getElementById("size");
    for(var i=0,sL=sizeObj.length;i<sL;i++){
        if(sizeObj.options[i].text == mySize){
            sizeObj.selectedIndex = i;
            break;
        }
    }
}

请记住,这不是一个完成的脚本。

3 个答案:

答案 0 :(得分:11)

从窗口对象

获取jQuery
var $ = window.jQuery;

答案 1 :(得分:2)

除了this之外,我没有找到更好的答案。

通常,这段代码定义了在tampermonkey编辑器中进一步使用的库。

/* globals MY_LIB*/使用该按钮将取消所有警告。

有关更多信息,请检查此(https://jshint.com/docs/#inline-configuration)。 它解释了什么是全局变量,以及它们如何工作。

答案 2 :(得分:-1)

您需要包含JQuery $不是常规javascript的一部分