【问题标题】:jQuery doesn't work in Internet Explorer 11jQuery 在 Internet Explorer 11 中不起作用
【发布时间】:2019-08-12 07:49:21
【问题描述】:

我的 ajax success:function() 运行一行代码,打开一个新窗口并将数据插入其中。现在我的代码看起来像这样:

success: function(data) {
  var url = location.href;
  var w = window.open(url);
  w.onload = function() {
    w.$('#main').html(data);
  };
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

它在 Chrome 中运行良好,但如果我想在 Internet Explorer 11 中运行它,它不会执行 w.$('#main').html(data)。我也试过了:

success: function(data) {
  var url = location.href;
  var w = window.open(url);
  w.addEventListener('load', function() {
    w.$('#main').html(data);
  }, {
    once: true
  });
}

这在 Chrome 中也可以正常工作,但在 IE 中它给我的结果与上面的行相同。有人知道为什么这段代码在 IE 中不起作用吗?

【问题讨论】:

  • 这是你的全部代码吗?您的示例中似乎缺少某些内容。
  • 试试$(w).find('#main').html(data);
  • 您似乎没有提供有关您的问题的详细信息。您需要检查您的 Success 函数是否在 IE 中被调用。如果它被调用,那么 data 参数的值是多少以及传递了哪个 URL?尝试检查控制台以查看是否有任何错误或警告消息。在开发者工具中设置断点,尝试逐步调试代码来检查问题可能有助于缩小问题范围。您可以将您的检测结果告知我们。我们会尽力为您提供进一步的建议。
  • 成功函数 get 被调用,因为新标签页在给定的 url 上打开。我检查了控制台,它显示“对象不支持属性或方法“addEventListener””。如果我使用w.onload = function(){...} 运行代码而不是添加事件侦听器,那么控制台什么也不会说,并且它不会在function(){...} 内执行任何操作。我还尝试删除事件侦听器和 onload,然后在我的成功函数中运行w.$('#main').html(data);,然后控制台显示“对象不支持属性或方法“$””。 @Teemu 的线路也不起作用。

标签: javascript jquery ajax internet-explorer-11


【解决方案1】:

我在这个帖子中找到了一个解决方案: addEventListener in Internet Explorer

我需要使用attachEvent 方法而不是addEventListeneronload

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-20
    • 2014-08-22
    • 1970-01-01
    • 1970-01-01
    • 2015-03-22
    • 2018-01-17
    • 2017-04-02
    • 1970-01-01
    相关资源
    最近更新 更多