仅在IOS设备上加载“window.open”命令.....?

时间:2012-01-20 08:56:56

标签: javascript ios mobile-safari

我第一次努力建设一个可以容纳IOS的网站,而且进展不顺利。

将flickr幻灯片嵌入作为页面上的对象嵌入。在常规浏览器上运行良好,而不是在iPad上运行(显然,因为它是闪存。) - 除了背景图像之外什么也没有加载。

有一个不错的解决方法,即使单元格本身成为一个链接,打开一个带有flickr页面本身的新浏览器窗口。完美的iPad。但是在普通浏览器上点击flickr对象会产生两个动作 - 幻灯片和带有flickr页面的新窗口。

我需要的是以这样一种方式编写脚本: IOS会看到这条指令:

onclick="window.open('http://www.flickr.com//photos/72076640@N04/sets/72157628873638463/show/');"

这是有问题的页面:

http://creyoncafe.com/pages/galeria2.html

有人可以帮忙吗?

(希望我很清楚。对不起,如果我继续说太久......遵循法令尽可能具体。)

感谢。

2 个答案:

答案 0 :(得分:0)

像这样添加一个javascript函数

<script type="text/javascript">

    function showFlickr () {

        var userAgent = navigator.userAgent;
        if (userAgent.indexOf('iPhone') != -1 ||
            userAgent.indexOf('iPod') != -1 ||
            userAgent.indexOf('iPad') != -1) {
            window.open('http://www.flickr.com//photos/72076640@N04/sets/72157628873638463/show/');
            return false;
        }

        return true;
    }

</script>

然后在你的onclick中说出

onclick="return showFlickr()"

这绝不是最优雅的解决方案,但它应该有效。

更好的方法是找到一个脚本,检测是否在浏览器上启用了Flash,并使用它来决定要显示哪种类型的库。有许多非iOS设备也无法显示Flash,例如没有安装Flash或安装了Flash阻止程序的台式机,或其他品牌的智能手机,如较旧的Android设备,Windows Phone,Blackberries等。使用用户代理将从不处理每个设备,但检测Flash应该适用于所有人。

答案 1 :(得分:0)

onclick处理程序设置为

onclick="if (!/(iPhone|iPad).*Safari/.test(navigator.userAgent)) return true; window.open('http://www.flickr.com//photos/72076640@N04/sets/72157628873638463/show/'); return false;"
相关问题