Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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_Jquery - Fatal编程技术网

Javascript 正在等待加载脚本对象

Javascript 正在等待加载脚本对象,javascript,jquery,Javascript,Jquery,我正在尝试创建一个jquery脚本,该脚本将从GoogleChrome的控制台运行,并将分析一个页面。 我的问题是,当我运行以下代码时: var jq = document.createElement('script'); jq.src = "http://code.jquery.com/jquery-latest.min.js"; document.getElementsByTagName('head')[0].appendChild(jq); alert($('a')); 我得到一个空的消

我正在尝试创建一个jquery脚本,该脚本将从GoogleChrome的控制台运行,并将分析一个页面。 我的问题是,当我运行以下代码时:

var jq = document.createElement('script');
jq.src = "http://code.jquery.com/jquery-latest.min.js";
document.getElementsByTagName('head')[0].appendChild(jq);
alert($('a'));
我得到一个空的消息框(坏结果) 但如果我把它和这样的处决分开:

步骤1:

var jq = document.createElement('script');
jq.src = "http://code.jquery.com/jquery-latest.min.js";
document.getElementsByTagName('head')[0].appendChild(jq);
步骤2:

alert($('a'));
它工作得很好,我得到了我想要的结果


问题是如何在单个批处理中运行此操作?

通常,您需要在
脚本节点上附加一个侦听器。jQuery在完全传输和执行之前不可用。像

var jq   = document.createElement('script'),
    head = document.head || document.getElementsByTagName('head')[0] || document.documentElement;

    jq.src = "http://code.jquery.com/jquery-latest.min.js";
    jq.onload = jq.onreadystatechange = function() {
    if(!jq.readyState || /loaded|complete/.test( jq.readyState ) ) {
        jq.onload = jq.onreadystatechange = null;
        jq = undefined;
    }
}

head.insertBefore(jq, head.firstChild);

上面的代码非常可靠,在IE6+中也能正常工作。

您可以尝试以下操作并检查脚本的就绪状态:

jq.onreadystatechange = function() {
  if (this.readyState == 'complete') {
     alert($('a'));
  }
}

如果您想要一个可靠且经过测试的侦听器来完成脚本加载,请尝试以下第三方库:


不建议从零开始启动脚本加载程序,今天不建议。

是否将此代码放入就绪事件中?不清楚“单独执行”是什么意思。我确信您的代码中没有“step1”和“step2”两个词,但是…我正在运行Google Chrome控制台上的代码勾选这个相关的答案:我应该在其中添加我的警报($('a')?记住我是在Google Chrome控制台上运行的