iPad 上的 jQuery window.open(url)

4
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />     

$('#btn-fb-share').click(function() {
        $('#btn-fb-share').attr("disabled", "disabled");
        window.open(url,"Mywindow","location=yes,menubar=yes");
    });

在我的iPad上(我在主屏幕上创建了一个网站的快捷方式),链接在Safari中不会打开新窗口。我该怎么解决?在我的PC上,链接可以在新窗口中正确打开。
编辑:我会尝试更清楚地解释一下。
发生了什么:我的Web应用程序在与我的应用程序相同的窗口中打开URL。 Process Flow Is 应该发生的是:Facebook页面在Safari的新选项卡中打开。(如果我在Safari中打开我的网站而不是我的Web应用程序,我可以演示这一点。) Process Flow should be 我希望你现在能看到区别。我需要在Safari中在新标签页中打开我的链接。但现在它仍然在我的窗口中打开,在那里我没有“返回按钮”。
两张图片之间唯一的区别是。第一张图片是保存在我的主屏幕上的网站。第二张图片是直接在Safari中打开的网站。

请转到以下链接以了解有关在iPhone和iPad上使用JavaScript打开窗口和对话框的信息:http://www.devdaily.com/iphone/iphone-ipad-javascript-windows-dialogs-open-html 和 http://developer.apple.com/library/safari/#documentation/appleapplications/reference/safariwebcontent/CreatingContentforSafarioniPhone/CreatingContentforSafarioniPhone.html#//apple_ref/doc/uid/TP40006482-SW1 <请向下滚动至“使用支持的JavaScript窗口和对话框”一节。 - jared_flack
我在那里找不到解决我的问题的方法。没有关于在新标签页/窗口中打开链接的内容。 - MrTouch
这两个链接讨论了在iOS中使用window.open()的方法。我在iPad上测试了这个js,它运行良好:http://jsfiddle.net/flackend/rb4n8/ - jared_flack
我不知道你是否了解我的问题。如果我在Safari中打开网站,它可以正常工作。但是,如果我在我的主屏幕上通过快捷方式(Web-App)打开它,它就不能正常工作。 - MrTouch
你的问题不够清晰。到底发生了什么事情,你又希望发生什么? - jared_flack
我更新了我的问题。希望现在清楚了。顺便说一下,我也测试了是否是因为Facebook的原因。但是当我尝试打开www.google.com时,同样的事情发生了。 - MrTouch
1个回答

5
我在谷歌上搜索并找到了一个关于同样问题的Macrumors.com论坛帖子,链接如下:this thread on macrumors.com
对于那些我想在WebApp内打开而不是在Safari中打开的链接,我使用以下方法:
<a onclick="parent.location='http://url.com/page.html'">Link</a>

对于我想要在Safari中打开的链接,我使用标准的HTML链接:

<a href="http://url.com/another_page.html">Link</a>

所以我又进行了一次谷歌搜索,并发现了如何在JavaScript中检测是否使用iOS:http://forrst.com/posts/JavaScript_iOS_Detection-Ofa

这是我的解决方案:

var url = "http://www.google.com/";

// Get the user agent string
var deviceAgent = navigator.userAgent;
// Set var to iOS device name or null
var ios = deviceAgent.toLowerCase().match(/(iphone|ipod|ipad)/);

$('#btn-fb-share').click(function() {

    if (ios) {
        // This is the line that matters
        $(this).attr('href', url);
    } else {
        // Your code that works for desktop browsers
        $('#btn-fb-share').attr("disabled", "disabled");
        window.open(url,2789432749274249,"location=yes,menubar=yes");
    }
});

我在桌面版的Chrome浏览器和iOS的Safari浏览器以及通过主屏幕WebApp测试了它。这是我的工作测试链接:http://flackend.com/other/ios-test/
请注意,您需要将链接的target设置为_blank,才能在iOS的Safari浏览器中打开一个新标签页(如果您是从Safari应用程序中打开WebApp实例,则不需要)。您可以直接在HTML标记中设置它,也可以使用jQuery的attr来设置。

1
您,先生,救了我的一天!非常感谢!把所有的声望都给你 :P - MrTouch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接