编程语言
首页 > 编程语言> > javascript-Safari window.open()不起作用

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