Javascript 未在中定义函数

Javascript 未在中定义函数,javascript,jquery,greasemonkey,tampermonkey,Javascript,Jquery,Greasemonkey,Tampermonkey,我有下面的代码,但当我点击按钮时,它找不到所需的功能。我对示波器不太在行,所以我认为这与此有关 在此之前,我将其设置为var name=function,直到我需要使用GM_setValue(尚未定义,但稍后会定义) /==UserScript== //@name-Futbin提取器 //@名称空间http://tampermonkey.net/ //@version 0.1 //@description尝试接管世界! //@author You //@匹配https://www.futbin.

我有下面的代码,但当我点击按钮时,它找不到所需的功能。我对示波器不太在行,所以我认为这与此有关

在此之前,我将其设置为
var name=function
,直到我需要使用GM_setValue(尚未定义,但稍后会定义)

/==UserScript==
//@name-Futbin提取器
//@名称空间http://tampermonkey.net/
//@version 0.1
//@description尝试接管世界!
//@author You
//@匹配https://www.futbin.com/players
//@grant GM_getValue,GM_setValue
//==/UserScript==
/*全球美元*/
(功能(){
"严格使用",;
//定义所有变量
函数提取(e){
//这个函数中的所有内容
}
函数startExtractor(){
log(“启动提取器”);
提取器运行=真;
$('.player_tr_1')。每个(函数(){
摘录(本);
});
$('.player_tr_2')。每个(函数(){
摘录(本);
});
};
函数siteSetup(){
var newBox=‘测试’;
$(newBox).insertBefore(“#repTb”);
}
如果(!$('fiddleBar')){
网站设置;
}否则{
console.log(“重复站点设置”);
设置超时(siteSetup,100);
}
})();

这里有几个问题需要解决。首先,您可以将两个
.player\u tr\u 1
.player\u tr\u 2
选择器连接到一个jQuery对象中,以循环使用。此外,
if(!$('#fiddleBar'))
永远不会命中,因为jQuery对象总是强制为true。如果您想知道DOM中是否存在元素,请使用
length
属性

关于您的问题,内联事件属性(如
onclick
)要求在全局范围内声明函数。这是他们不好的做法的部分原因,应该避免。而是使用委托事件处理程序,如下所示:

(函数(){
"严格使用",;
函数提取(e){
//这个函数中的所有内容
}
函数startExtractor(){
log(“启动提取器”);
提取器运行=真;
$('.player_tr_1、.player_tr_2')。每个(函数(){
摘录(本);
});
};
$(文档).on('单击','.startButton',函数(){
startExtractor();
}); 
函数siteSetup(){
var newBox=‘测试’;
$(newBox).insertBefore(“#repTb”);
}
if(!$('#fiddleBar')。长度){
siteSetup();
}否则{
console.log(“重复站点设置”);
设置超时(siteSetup,100);
}
})();
// ==UserScript==
// @name         Futbin Extractor
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        https://www.futbin.com/players
// @grant        GM_getValue, GM_setValue
// ==/UserScript==

/* global $ */

(function() {
    'use strict';

//defining all the variables


    function extract (e) {
//all the stuff in this function
    }


    function startExtractor () {
        console.log('Starting Extractor');
        extractorRunning = true;

        $('.player_tr_1').each(function () {
            extract(this);
        });

        $('.player_tr_2').each(function () {
            extract(this);
        });
    };

    function siteSetup () {
        var newBox = '<div id="fiddleBar"><button "startButton" onClick="startExtractor();">Test</button></div>';
        $(newBox).insertBefore('#repTb');
    }



    if (!$('#fiddleBar')) {
        siteSetup;
    } else {
        console.log('Repeating Site Setup');
        setTimeout(siteSetup,100);
    }

})();