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);
}
})();