Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery safari web app open rel=";“外部”;在safari中而不是在web应用中_Jquery_Hyperlink_Iphone Web App - Fatal编程技术网

Jquery safari web app open rel=";“外部”;在safari中而不是在web应用中

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

我正在尝试使我的网站成为一个web应用程序。我第一次看它时,所有的链接都是在safari浏览器中打开的。在向站点添加脚本后,什么不再是问题。 以下是脚本:

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应用程序中。如果链接像我希望的那样在普通浏览器中打开。那么,与此相反?确实如此。恰恰相反。这个脚本真是太棒了。。多谢各位