2013-10-04 71 views
0

预期我有一个共享链接功能,下面的代码:的window.open不工作在iPad上的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': 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

  • 一个空白的新标签页打开什么也没有它
  • 当我去一些其他选项卡,然后回来这个选项卡,然后我看到了新的窗口是否 刷新/重载

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

解决方案是什么?

回答

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

让我们来看一些冗余代码。 最好安全,不要抱歉。