Jquery safari web app open rel=";“外部”;在safari中而不是在web应用中
我正在尝试使我的网站成为一个web应用程序。我第一次看它时,所有的链接都是在safari浏览器中打开的。在向站点添加脚本后,什么不再是问题。 以下是脚本:Jquery safari web app open rel=";“外部”;在safari中而不是在web应用中,jquery,hyperlink,iphone-web-app,Jquery,Hyperlink,Iphone Web App,我正在尝试使我的网站成为一个web应用程序。我第一次看它时,所有的链接都是在safari浏览器中打开的。在向站点添加脚本后,什么不再是问题。 以下是脚本: if(("standalone" in window.navigator) && window.navigator.standalone){ $(document).on('click', 'a', function(e) { if ($(this).attr('target') !== '_blank
if(("standalone" in window.navigator) && window.navigator.standalone){
$(document).on('click', 'a', function(e) {
if ($(this).attr('target') !== '_blank') {
e.preventDefault();
window.location = $(this).attr('href');
}
});
}
只有带有“rel=“external”的所有链接保留在web应用程序中。如果我将它们设置为目标“\u blank”
我想:如果我有一个脚本来查找rel=“external file”,该怎么办。编辑上述脚本不起作用
所以我想要的是一个在rel=external元素上测试的脚本。如果找到它,链接保持不变,如果在链接中找不到rel=external,它会执行如下操作:
e.preventDefault();
window.location = $(this).attr('href');
这个怎么样
if(! $(this).is('[rel="external"]') ) {
e.preventDefault();
window.location = $(this).attr('href');
} else {
window.open( $(this).attr('href') ); //opens a new window
}
已编辑:添加了一个else条件,该条件将导致在新窗口中打开带有rel=“external”的链接。在web应用中打开外部浏览器窗口(独立) 您需要在window.open函数中使用_系统。 iPhone Safari上也有一个错误,关闭新打开的窗口时,无法正确重新绘制父窗口
var doc = document.documentElement;
var top = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);
$('html, body').animate({scrollTop: 0});
window.open(encodeURI(url),"_system",windowOpenSettings);
$('html, body').animate({scrollTop: top});
return;
所有的滚动都只是为了重新绘制IOS窗口,并将用户放回与单击之前相同的位置。这一个看起来不错。但它并没有做我想做的。所有链接都保留在web应用程序中。还有带有rel=“external”的。我想在常规iOs Safari中的web应用程序之外打开witch你想让他们留在web应用程序中,同时在常规Safari中打开吗?这就是你所说的。这段代码回答了你原来的问题。这不是我想要的。如果我有一个像这样的链接,我希望它留在web应用程序中。如果链接像我希望的那样在普通浏览器中打开。那么,与此相反?确实如此。恰恰相反。这个脚本真是太棒了。。多谢各位