Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.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
Internet Explorer中的JavaScript调试(第页上的所有脚本)_Javascript_Debugging_Internet Explorer 8_Internet Explorer 7 - Fatal编程技术网

Internet Explorer中的JavaScript调试(第页上的所有脚本)

Internet Explorer中的JavaScript调试(第页上的所有脚本),javascript,debugging,internet-explorer-8,internet-explorer-7,Javascript,Debugging,Internet Explorer 8,Internet Explorer 7,我是一个处于成熟阶段的项目的新手。其中一个页面上有许多JS脚本和库,jQuery被大量使用。IE7或8中有一个奇怪的错误:在页面脚本中间的某个地方执行jQuery对象变得不被定义,所以其他所有的东西都停止工作。 中间有两个脚本,比如: <script src="script1.js"></script> <script src="script2.js"></script> 在脚本2的开头,我还原了它: if (!jQuery &&

我是一个处于成熟阶段的项目的新手。其中一个页面上有许多JS脚本和库,jQuery被大量使用。IE7或8中有一个奇怪的错误:在页面脚本中间的某个地方执行jQuery对象变得不被定义,所以其他所有的东西都停止工作。 中间有两个脚本,比如:

<script src="script1.js"></script>
<script src="script2.js"></script>
脚本2
的开头,我还原了它:

if (!jQuery && jQueryBackup) jQuery = jQueryBackup;

它使脚本工作,但不能解释一个变量如何在两个脚本之间变得不被定义(我把它看作字面上的两行代码)。尝试将它们放入


如果您想调试,我会这样做:

$.getScript("script1.js").done(function(script, textStatus) {
  console.log('script1 is loaded');
  $.getScript("script2.js").done(function(s,t){
     console.log('script1.js is loaded');
  });
})
.fail(function(jqxhr, settings, exception) {
  console.log( "Triggered ajaxError handler." );
});
现在您可以调试它,还可以使用本机javascript和onload。
如果你需要例子,请告诉我

示例:(此解决方案适用于IE8+、firefox和chrome)


没有代码就帮不了你…JS是一种解释语言。浏览器逐行执行。如果它在或中,它就没有相同的动作。
<head>
    <script src="script1.js"></script>
    <script src="script2.js"></script>
</head>
$.getScript("script1.js").done(function(script, textStatus) {
  console.log('script1 is loaded');
  $.getScript("script2.js").done(function(s,t){
     console.log('script1.js is loaded');
  });
})
.fail(function(jqxhr, settings, exception) {
  console.log( "Triggered ajaxError handler." );
});
function handleOnLoad() {
    // do the same here for the script.2 file
}
function IEhandleOnLoad() {
     if (this.readyState === 'complete' || this.readyState === 'loaded') {
           handleOnLoad();
        }
}
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.onreadystatechange = IEhandleOnLoad;
s.onload = handleOnLoad;
s.src = 'script1.js';