在第三个库中的上一个函数完成后,在javascript中运行下一行(不是jquery)
在我们的网站中,有一个呼叫跟踪脚本,用户在联系人页面中选择国家后直接运行该脚本 其过程如下:在第三个库中的上一个函数完成后,在javascript中运行下一行(不是jquery),javascript,Javascript,在我们的网站中,有一个呼叫跟踪脚本,用户在联系人页面中选择国家后直接运行该脚本 其过程如下: 1.客户点击列表并选择他们所在的国家,在此阶段,一旦他们点击元素,我们就开始跟踪 2.第三部分中的脚本运行时,通过使用新号码替换上一节课来更改网站中的电话号码 3.然后我们想在下一行中得到新号码 计划的脚本如下所示: orgCallNo = document.querySelector(".oldTel").innerHTML; var x = setInterval(function (
1.客户点击列表并选择他们所在的国家,在此阶段,一旦他们点击元素,我们就开始跟踪 2.第三部分中的脚本运行时,通过使用新号码替换上一节课来更改网站中的电话号码 3.然后我们想在下一行中得到新号码 计划的脚本如下所示:
orgCallNo = document.querySelector(".oldTel").innerHTML;
var x = setInterval(function (){
telephone.change();
var newCallNo = document.querySelector(".tel").innerHTML;
if (newCallNo !== orgCallNo) {
console.log(newCallNo);
clearInterval(x);
}
}, 20);
问题是,当我调用外部脚本(即电话更改脚本)时,需要一段时间,下一行接受旧的输入并在电话脚本完成之前继续该过程
为了解决这个问题,我已经尝试了setTimeOut函数来暂停下一步:
orgCallNo = document.querySelector(".oldTel").innerHTML;
var x = setInterval(function (){
telephone.change();
var newCallNo = setTimeout(function(){return
document.querySelector(".tel").innerHTML;}, 300);
if (newCallNo !== orgCallNo) {
console.log(newCallNo);
clearInterval(x);
}
}, 20);
但是,它返回未定义的。同时,我想尝试使用callback函数,但首先,大多数解决方案都在jQuery中,我现在无法使用。第二点是,脚本使用来自第三方的库,并且没有直接返回脚本中的一些输入,因此我不确定何时设置回调函数
在这种情况下,如何确保在第三方脚本完成后运行下一行?
感谢大家的帮助=)您可以使用
readyState
加载此外部库,就像您在加载第三个库时检测到的那样(优于setTimeout)
示例代码:
function loadScript( url, callback ) {
var script = document.createElement( "script" )
script.type = "text/javascript";
if(script.readyState) { //IE
script.onreadystatechange = function() {
if ( script.readyState === "loaded" || script.readyState === "complete" ) {
script.onreadystatechange = null;
callback();
}
};
} else { //Others
script.onload = function() {
callback();
};
}
script.src = url;
document.getElementsByTagName( "head" )[0].appendChild( script );
}
// call the function...
loadScript(pathtoscript, function() {
console.log('script ready! i can now execute my code...');
});
2个问题:1。你能不能提供这个库的链接,然后说,在你真正的项目中你调用了哪种方法?2.库中的这个方法接受任何参数吗?这个方法是异步的吗?它是否返回了一些内容?“…需要一段时间,下一行将接收旧的输入,并在电话脚本完成之前继续此过程。”
setInterval
将执行此操作,您需要使用它的原因是什么?这是太多的工作没有HTML请张贴相关的HTML以及