Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
函数前的Javascript未定义变量_Javascript_Variables - Fatal编程技术网

函数前的Javascript未定义变量

函数前的Javascript未定义变量,javascript,variables,Javascript,Variables,我有一块javascript,它被黑客入侵了,我看到了一个错误“undefined variable-broadcast” 功能cdtd(广播){ /*预期日期格式为年月日HH:MM:SS*/ var nextbroadcast=新日期(广播); var now=新日期(); var timeDiff=nextbroadcast.getTime()-now.getTime(); 如果(timeDiff这可能是问题所在: var timer = setTimeout('cdtd(broadcast

我有一块javascript,它被黑客入侵了,我看到了一个错误“undefined variable-broadcast”

功能cdtd(广播){
/*预期日期格式为年月日HH:MM:SS*/
var nextbroadcast=新日期(广播);
var now=新日期();
var timeDiff=nextbroadcast.getTime()-now.getTime();

如果(timeDiff这可能是问题所在:

var timer = setTimeout('cdtd(broadcast)',1000);
您应该在
cdtd()
函数上方声明
var timer;
,然后在函数下方或外部进行如下设置:

var func = 'cdtd(' + broadcast + ')';

timer = setTimeout(func,1000);

这可能就是问题所在:

var timer = setTimeout('cdtd(broadcast)',1000);
您应该在
cdtd()
函数上方声明
var timer;
,然后在函数下方或外部进行如下设置:

var func = 'cdtd(' + broadcast + ')';

timer = setTimeout(func,1000);

更改以下行:

var timer=setTimeout('cdtd(广播)'1000);

为此:


var timer=setTimeout(function(){cdtd(broadcast);},1000);

更改以下行:

var timer=setTimeout('cdtd(广播)'1000);

为此:


var timer=setTimeout(函数(){cdtd(广播);},1000)

你试过删除PHP的引号吗?@AlexW我刚试过删除引号,它破坏了脚本。你试过删除PHP的引号吗?@AlexW我刚试过删除引号,它破坏了脚本。不确定这是否是必需的,
广播
的值已经可用,它被传递给了fun首先是Action。它应该能够在下次调用时使用它已经得到的。这是我相信doubleJ试图实现的。请看我的答案。如果javascript在php文件中,这会起作用。最初,我有一个类似的问题,因为我不知道如何将变量传递给外部javascript。我不确定这一点是必需的,
broadcast
的值已经可用,它首先被传递给函数。它应该能够在下次调用它时使用它已经得到的。这是我相信doubleJ试图实现的。请参阅我的答案。如果javascript在php文件中,这会起作用。我有一个类似的东西,我首先,因为我不知道如何将变量传递给外部javascript。这就解决了它。但我不太清楚为什么。广播在到达该函数之前使用了两次。是的,但在原始代码中,您传递的是字符串“cdtd(broadcast)”,但此参数不支持接受参数的函数,因此javascript引擎正在寻找一个名为cdtd(broadcast)()的函数,它不存在。你需要提供一个匿名函数才能调用一个带有参数的函数。这就解决了问题。但我不太清楚为什么。广播在到达该函数之前使用了两次。是的,但在你的原始代码中,你传递了一个字符串“cdtd(broadcast)”,但此参数不支持使用参数的函数,因此javascript引擎正在寻找一个名为cdtd(broadcast)()的函数,该函数不存在。您需要提供一个匿名函数才能使用参数调用一个函数。