【发布时间】: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