Javascript window.open在iPad Safari上未按预期工作

Javascript window.open在iPad Safari上未按预期工作,javascript,jquery,css,ipad,mobile-safari,Javascript,Jquery,Css,Ipad,Mobile Safari,我有以下共享链接功能代码: longurl = "www.google.com" var newWin = window.open('', share_win_name, 'width=826,height=836') gapi.client.load('urlshortener', 'v1', function() { var request = gapi.client.urlshortener.url.insert({ 'resource': {

我有以下共享链接功能代码:

  longurl = "www.google.com"
  var newWin = window.open('', share_win_name, 'width=826,height=836')
  gapi.client.load('urlshortener', 'v1', function() {
    var request = gapi.client.urlshortener.url.insert({
        'resource': {
            'longUrl': longurl
        }
    });
    var resp = request.execute(function(resp) {
      if (resp.error) {
        newWin.location = share_link + encodeURIComponent(longurl)
      } else {
        newWin.location = share_link + encodeURIComponent(resp.id)
      }
    });
  });
此代码在桌面上工作。但在ipad上,safari

  • 将打开一个空白的新选项卡,其中没有任何内容
  • 当我转到其他选项卡并返回到此选项卡时,我看到新窗口正在打开 刷新/重新加载
我认为这是一个问题,因为我试图首先打开一个空白窗口,然后用链接信息更新


解决方案是什么?

只要执行以下操作:

newWin = window.open('', share_win_name, 'width=826,height=836');
您已经创建了一个弹出窗口

与其在前面实例化弹出窗口,不如在范围外声明
newWin
变量

在回调函数中,实例化弹出窗口

longurl = "www.google.com"
var newWin;
gapi.client.load(...);
var resp = request.execute(function(resp) {
    if (resp.error) {
        newWin = window.open( share_link + encodeURIComponent(longurl), share_win_name, 'width=826,height=836');
    } else {
        newWin = window.open( share_link + encodeURIComponent(resp.id), share_win_name, 'width=826,height=836');
    }
  });
});
让有一点多余的代码。 安全总比后悔好