0

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

  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 上

  • 打开一个空白的新标签,上面没有任何内容
  • 当我转到其他选项卡并返回此选项卡时,我看到 NEW WINDOW 正在刷新/重新加载

我认为这是一个问题,因为我尝试首先打开一个空白窗口,然后使用链接信息进行更新。

解决办法是什么?

4

1 回答 1

0

只要您执行以下操作:

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');
    }
  });
});

让有一点冗余代码。安全总比后悔好。

于 2014-02-20T16:24:25.103 回答