fra*_*sca 5 javascript safari window.open
我需要在新窗口中打开外部链接。我处理单击视图中的编辑按钮:
module.exports = utils.Backbone.View.extend({
events: {
"click #edit": "onEditClicked"
},
"onEditClicked": () => PubSub.publish("EDITOR_REQUESTED");
});
Run Code Online (Sandbox Code Playgroud)
然后我检查用户是否已登录。如果是 - 我发送通知“OPEN_EDITOR”并期望使用外部链接打开一个新窗口。
TextEditorController.prototype.handleMessages = function () {
PubSub.subscribe("OPEN_EDITOR", () => {
var editor = window.open(this.$service.getEditorURL());
});
});
Run Code Online (Sandbox Code Playgroud)
但是在 Safari 中新窗口似乎被屏蔽了?我的情况有解决方法吗?
小智 13
其原因是 Safari 的内置弹出窗口阻止程序。
唯一允许在 Safari 中打开新窗口的 javascript - 是直接附加到用户事件的 javascript。在你的情况下,你稍后调用 window.open 。
这里的解决方法可以是:
在 onEditClicked 方法中创建一个没有 URL 的窗口
safariWindow = window.open();
在 handleMessages 函数中更改该窗口的 URL
safariWindow.location.href = newUrl
| 归档时间: |
|
| 查看次数: |
14972 次 |
| 最近记录: |