首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >javascript中出现意外的未定义错误

javascript中出现意外的未定义错误
EN

Stack Overflow用户
提问于 2013-10-10 02:04:05
回答 2查看 130关注 0票数 0

我有一个页面,里面有一个调用js文件中的函数的函数。

调用js文件中函数的代码:

代码语言:javascript
运行
复制
<script language="javascript" type="text/javascript">
var qc = qc_chat;
window.onload = function()
{
qc.setup('<?php echo $p; ?>');
}
</script>

我使用以下代码包含qc.js文件:

代码语言:javascript
运行
复制
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中遇到错误

谢谢

EN

回答 2

Stack Overflow用户

发布于 2013-10-10 02:09:06

因为$.getScript是异步的,所以依赖于它加载的脚本的任何事情都必须在它的回调函数中完成。所以它应该是:

代码语言:javascript
运行
复制
$.getScript('qc.js', function() {
    qc_chat.setup('<?php echo $p; ?>');
});
票数 3
EN

Stack Overflow用户

发布于 2013-10-10 02:19:18

当我不能编辑一些模块连接的地方时,我使用这个代码片段:

代码语言:javascript
运行
复制
var waitForqcchat = setInterval(function(){
  if(typeof qcchat != 'undefined'){
    clearInterval(waitForqcchat);
    //here I sure, that module connected
    qcchat.setup('<?=$p?>');
  }
}, 200);

如果qcchat永远不能连接,您还应该编写一个逻辑来限制等待

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19279413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档