javascript-Safari window.open()不起作用
作者:互联网
我需要在新窗口中打开外部链接.我处理在视图中单击编辑按钮:
module.exports = utils.Backbone.View.extend({
events: {
"click #edit": "onEditClicked"
},
"onEditClicked": () => PubSub.publish("EDITOR_REQUESTED");
});
然后,我检查用户是否已登录.
如果是-我发送通知“ OPEN_EDITOR”,并期望通过外部链接打开一个新窗口.
TextEditorController.prototype.handleMessages = function () {
PubSub.subscribe("OPEN_EDITOR", () => {
var editor = window.open(this.$service.getEditorURL());
});
});
但是在Safari中,新窗口似乎被阻止了?我的情况下有解决方法吗?
解决方法:
原因是Safari内置的弹出窗口阻止程序.
唯一允许在Safari中打开新窗口的javascript是直接附加到用户事件的javascript.在您的情况下,您要致电window.open.
解决方法可以是:
>在onEditClicked方法中创建没有URL的窗口
safariWindow = window.open();
>在handleMessages函数中更改该窗口的URL
safariWindow.location.href = newUrl
标签:safari,window-open,javascript 来源: https://codeday.me/bug/20191118/2024867.html