1

在 setTimeout 内,我正在设置新打开的窗口的位置。为避免弹出窗口拦截器,使用临时本地 URL 打开窗口,然后将位置更改为目标 URL。这适用于所有桌面浏览器,包括 Safari。

然而,在 Mobile Safari 中,新窗口的位置不会更新,直到用户将焦点返回到原始窗口,即临时页面留在原处。

这就是 JavaScript/jQuery 的相关部分的样子:

var self = $(this);
if (self.is("a")) {
    var clickEventHandler = function(event) {
        event.preventDefault();
        if (self.attr("target")) {
            var newWindow = window.open('loading.htm',self.attr("target"));
            var externalURL=self.attr("href");
            setTimeout( function() { newWindow.location=externalURL; }, 100 );
        }
    }
    $(this).bind("click", eventHandler);
}
4

0 回答 0