У меня есть следующий код для функции общего доступа:
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
Я считаю, что это проблема, когда я пытаюсь сначала открыть пустое окно, а затем обновить информацию о ссылке.
Каково решение?
Как только вы выполните следующее:
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');
}
});
});
Пусть будет немного избыточного кода. Лучше быть в безопасности, чем сожалеть.