Joh*_*ell 4 javascript ajax datatables window.open
非常简单的问题,真的.我到处都找到了一个我没有运气的确切问题的人......
在标签"A"中,我打电话window.open().新选项卡(选项卡"B")开始加载,其脚本包含一些ajax.它所做的ajax调用需要很长时间(这是故意的,因为我试图处理冗长的ajax调用).当标签"B"在超过10秒后冻结时,标签"A"也会冻结.
我一直试着打电话window.open("url", "_blank");,window.open("url");似乎都没有解决问题.
为了让事情更加混乱,我尝试了实验,使标签"B"打开,ajax 不会超时,一切正常.然后我更改选项卡"B"中的URL参数(这是通过ajax发送数据库参数并且是冗长请求的原因)并且当它按预期超时时它仍然冻结窗口"A".
我确定我错过了什么.window.open()调用完成后,选项卡"B"与选项卡"A"有什么关系.我不明白他们是如何依旧相互联系的.虽然所有这些都在其他标签上进行,但工作正常.
为了记录我在Mac上使用Chrome但看到了类似的"量子纠缠",让我们在Safari中也称之为"量子纠缠".
此外,两个页面都使用DataTables jQuery插件.它是在API中进行的ajax调用.我无法想象DataTables如何成为这里的罪魁祸首,不过......
任何想法,SO社区???
提前致谢!
那是因为新窗口在与开启窗口相同的过程中打开.
要使链接在与网页不同的进程中打开,只需将rel ="noreferrer"和target ="_ blank"作为属性添加到标记中,然后将其指向其他域名上的URL.例如:
<a href="http://www.google.com" rel="noreferrer" target="_blank">Google</a>
来源:https://blog.chromium.org/2009/12/links-that-open-in-new-processes.html
根据文档:(https://developer.mozilla.org/en-US/docs/Web/API/Window/open#Window_features) window.open() 当前支持功能。因此,我们可以传递 noreferrer 或 noopener 如下所示,它们不会冻结或阻止父窗口。
window.open(hostUrl, '_blank', 'noreferrer')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2172 次 |
| 最近记录: |