我有一个页面,里面有一个调用js文件中的函数的函数。
调用js文件中函数的代码:
<script language="javascript" type="text/javascript">
var qc = qc_chat;
window.onload = function()
{
qc.setup('<?php echo $p; ?>');
}
</script>
我使用以下代码包含qc.js文件:
function doThat() {
$.ajax({
url: 'http://www.example.com',
type: 'GET',
data: 'adrs='+getHost( document.domain ),
dataType: 'jsonp',
jsonp: false,
jsonpCallback: 'methodCallback',
success: function( data ) {
if( data.message == "yes" ) {
} else {
$.getScript("qc.js"); //files m including using this ajax
$.getScript("tools.js"); //files m including using this ajax
}
},
error: function( error ) {
console.log( error );
}
});
}
我正在使用<body onload="doThat();">
调用doThat()
但我在控制台Uncaught ReferenceError: qc_chat is not defined
中遇到错误
谢谢
发布于 2013-10-10 02:09:06
因为$.getScript
是异步的,所以依赖于它加载的脚本的任何事情都必须在它的回调函数中完成。所以它应该是:
$.getScript('qc.js', function() {
qc_chat.setup('<?php echo $p; ?>');
});
发布于 2013-10-10 02:19:18
当我不能编辑一些模块连接的地方时,我使用这个代码片段:
var waitForqcchat = setInterval(function(){
if(typeof qcchat != 'undefined'){
clearInterval(waitForqcchat);
//here I sure, that module connected
qcchat.setup('<?=$p?>');
}
}, 200);
如果qcchat永远不能连接,您还应该编写一个逻辑来限制等待
https://stackoverflow.com/questions/19279413
复制相似问题