【问题标题】:jQuery eval of ajax inline script not throwing errorsajax内联脚本的jQuery eval不抛出错误
【发布时间】:2010-03-29 03:23:34
【问题描述】:

Debugging Ajax code with Firebug

这个问题很相似,虽然很老而且没有真正的答案。

我目前正在整合一个应用程序,其中包含通过 ajax 请求加载的脚本。

一个例子:

var main = _main.get();
main.load( someurl );

其中 someurl 是包含内联脚本元素的页面:

<script type="text/javascript"> 
$(document).ready( function(){
    var activities = new activities();
    activities.init();
});
</script>

jQuery 将对内联脚本标签中的 js 进行逐行评估。问题是,当出现问题时,我在 firebug 中没有收到任何错误或任何信息。

有人对此有好的解决方案吗?还是加载包含 javascript 功能的页面的更好做法?

编辑:有一点进展......所以在通过 ajax 加载的页面顶部,我有另一个脚本被包含在内,如下所示:

<script type="text/javascript" src="javascript/pages/activities.js"></script>

当我将页面中的内联 $(document).ready() 代码移动到此包含文件的末尾时,现在正确地抛出了语法错误。

顺便说一句,我将console.log() 放入内联脚本标签中,它被记录得很好。我还尝试完全删除 $(document).ready(),并将其切换为 $(window).load() 事件。没有不同。我猜可能与内联脚本对包含的activity.js的依赖有关。

:: 摇头 :: javascript 可能是一场噩梦。

【问题讨论】:

    标签: php jquery ajax debugging firebug


    【解决方案1】:

    我建议使用http://api.jquery.com/jQuery.getScript/ 来延迟加载Javascript 或获取html 内容http://api.jquery.com/load/

    分别:

    $.getScript('path/to/file.js');
    

    .. 和

    $('#content-wrap').load('path/to/html/file.html');
    

    这两种方法都围绕http://api.jquery.com/jQuery.ajax/ 进行包装,并具有可选的回调函数参数。

    【讨论】:

      猜你喜欢
      • 2013-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-10
      • 2013-04-17
      • 1970-01-01
      • 2013-02-06
      相关资源
      最近更新 更多