【问题标题】:JavaScript inside Ajax - Internet ExplorerAjax 中的 JavaScript - Internet Explorer
【发布时间】:2011-11-20 23:56:33
【问题描述】:

我想在一些 ajax 内容的末尾添加一个 Javascript, 它在 Firefox 上运行良好,但 Internet Explorer 打印脚本而不运行它。

<script type="text/javascript">
    $.tablesorter.addParser({
        id: 'title',
        is: function(s)
        {
             return false;
        },
        format: function(s)
        {
             s= s.substring(s.indexOf('<span class="title">')+24,s.length-30);
             return s.replace(' ','');
        },
        type: 'text'
    });

    $.tablesorter.addParser({
        id: 'price',
        is: function(s)
        {
             return false;
        },
        format: function(s)
        {
             s= s.substring(0,s.length-3);
             return s.replace(' ','');
        },
        type: 'digit'
    });
    $(document).ready(function()
    {
       $("#result").tablesorter({
            headers: {
                0: {sorter:'title'},
                1: {sorter:'price'},
                2: {sorter: false}
            }
       });
    });
    </script>



function submitForm()
{
$("form#search").ajaxSubmit({
            beforeSubmit: function(formData, jqForm, options) {
                $("#window").html('<div style="text-align:center; display:block;"><img src="../images/commun/spinner.gif" /></div>');
                return true;
            },
            success: function(msg, statut) {
                $("#window").html(msg);
                return false;
            }
            });
}

【问题讨论】:

  • 这是您要添加的脚本吗?你如何添加它? “在某些 ajax 内容的末尾”是什么意思?
  • 你有调用ajax方法的例子吗?上面的代码似乎与问题没有任何关系
  • @Marius 包含 javascript 位的代码位通过 submitForm 函数加载 ajax。

标签: javascript jquery ajax internet-explorer-8


【解决方案1】:

您应该使用getScript 来加载和运行脚本。您不能将脚本与 html 内容混合使用。还要确保服务器响应的上下文类型设置为 javascript MIME 类型,例如“text/javascript”。

【讨论】:

    【解决方案2】:

    我也遇到过同样的问题,我所做的只是将脚本内容放在具有特殊类名的 div 中。一旦我得到响应并将其输入到 DOM 中,我就会提取该脚本内容并简单地 eval() 它。这适用于所有浏览器:-)

    【讨论】:

      【解决方案3】:

      错误 80020101 的原因是如果脚本包含在 cdata 注释中,IE 无法加载/触发在 JQuery 1.6 中使用 AJAX 返回的脚本。 因此,删除代码中的 CDATA (),它应该可以工作。

      【讨论】:

        猜你喜欢
        • 2012-08-17
        • 1970-01-01
        • 1970-01-01
        • 2023-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-28
        相关资源
        最近更新 更多