我需要在新窗口中打开外部链接。我处理在 View 中单击编辑按钮:
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。
解决方法可以是:
safariWindow = window.open();
safariWindow.location.href = newUrl