When calling window.open()
in a iOS web app, the page opens in the web app instead of mobile safari.
在iOS Web应用程序中调用window.open()时,页面将在Web应用程序中打开,而不是在移动Safari中打开。
How can I force the webpage to open in mobile safari?
如何强制在移动野生动物园中打开网页?
Note: Using straight <a href>
links is not an option.
注意:使用直接链接不是一种选择。
2 个解决方案
#1
63
This is possible. Tested with iOS5 stand-alone web app:
这个有可能。使用iOS5独立Web应用程序进行测试:
HTML:
HTML:
<div id="foz" data-href="http://www.google.fi">Google</div>
JavaScript:
JavaScript的:
document.getElementById("foz").addEventListener("click", function(evt) {
var a = document.createElement('a');
a.setAttribute("href", this.getAttribute("data-href"));
a.setAttribute("target", "_blank");
var dispatch = document.createEvent("HTMLEvents");
dispatch.initEvent("click", true, true);
a.dispatchEvent(dispatch);
}, false);
Can be tested here: http://www.hakoniemi.net/labs/linkkitesti.html
可以在这里测试:http://www.hakoniemi.net/labs/linkkitesti.html
#2
8
Turns out it is NOT POSSIBLE to escape the iOS web app with a JavaScript window.open()
. If you want a link to open in mobile safari you have to use <a href>
links.
事实证明,使用JavaScript window.open()逃离iOS网络应用程序是不可能的。如果您想要在移动Safari中打开链接,则必须使用链接。
#1
63
This is possible. Tested with iOS5 stand-alone web app:
这个有可能。使用iOS5独立Web应用程序进行测试:
HTML:
HTML:
<div id="foz" data-href="http://www.google.fi">Google</div>
JavaScript:
JavaScript的:
document.getElementById("foz").addEventListener("click", function(evt) {
var a = document.createElement('a');
a.setAttribute("href", this.getAttribute("data-href"));
a.setAttribute("target", "_blank");
var dispatch = document.createEvent("HTMLEvents");
dispatch.initEvent("click", true, true);
a.dispatchEvent(dispatch);
}, false);
Can be tested here: http://www.hakoniemi.net/labs/linkkitesti.html
可以在这里测试:http://www.hakoniemi.net/labs/linkkitesti.html
#2
8
Turns out it is NOT POSSIBLE to escape the iOS web app with a JavaScript window.open()
. If you want a link to open in mobile safari you have to use <a href>
links.
事实证明,使用JavaScript window.open()逃离iOS网络应用程序是不可能的。如果您想要在移动Safari中打开链接,则必须使用链接。