移动版Safari中JavaScript无法工作

3

好的,问题是我正在使用的JS代码在移动Safari中无法立即工作。在桌面Safari、Chrome等浏览器中一切正常。

在移动Safari(已测试iPhone 4和iPod Touch 2nd gen)中,页面完全空白。但是,如果你导航到另一个页面,然后再点击返回,它就可以正常加载了!

有人能告诉我这里到底发生了什么吗?

谢谢 :)

这是网站链接

http://osmithcouk.ipage.com/exposed/index.php

这是JS代码

注意:自从Ryuutatsu建议我这样做以来,我已经编辑了代码,但仍然无法工作 :(

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js" type="text/javascript"></script>
<script type="text/javascript">

$(document).ready(function(){

        $(".slidingDiv").hide();
        $(".show_hide").show();

    $('.show_hide').click(function(){
    $(".slidingDiv").slideToggle();
    });

});

这是与之相对应的HTML代码。

<a href="#" class="show_hide"><b><?php include 'headline1.txt'; ?></b></a>
<div class="slidingDiv">
<?php include 'story1.txt'; ?> <a href="#" class="show_hide">Hide story...</a></div>

以下是slidingDiv和show_hide的CSS样式。

.slidingDiv {
    background-color: #FFFFFF;
    padding:20px;
    margin-top:10px;
}

.show_hide {
    display:none;
}

非常感谢您的帮助 :)

我们能看到相关的HTML代码吗?如果不能看到页面的其余部分,就很难确切地知道你想要做什么。 - jfriend00
我看到的唯一问题是在结尾处你可能需要再加一个分号。你现在写成了});})},我建议改为});});})。除此之外,我没有发现其他问题。 - ryuutatsuo
谢谢,我已经添加了HTML和CSS,并编辑了代码 :) 我还添加了一个链接到当前的网站。 - Oliver
使用最新的jQuery 1.6.1代替1.3.2怎么样? - sod
谢谢。好的,我已经更新了,但还是不起作用。 - Oliver
尝试将 jqueryjs 文件放在本地主机上,有时候请求可能会被本地服务提供商阻止。 - Sudantha
3个回答

1
实际上,问题在于您必须添加查询字符串参数才能在移动设备上呈现它。例如:
script src="js/Common.js" type="text/javascript"

应该被替换为


script src="js/Common.js?v=1.1" type="text/javascript"

您可以在 JavaScript 文件的注释中提供版本信息,这样客户端就可以知道他是否拥有最新版本的 JS 文件。


你需要添加查询字符串参数来获取渲染的内容吗?每个 JavaScript 都源自于一个 src 属性吗? - Robin Manoli

0

我不确定这是否是正确的协议,但我已经自己解决了,所以想发表我的答案!

这真的很简单,我只是将JS移动到CSS下面。显然,Safari在渲染jQuery之前存在问题 :s


0

使用

jQuery(window).load()

而不是

jQuery(document).ready()

虽然这可能回答了问题,但请考虑添加一个解释,说明问题的原因以及您的答案是如何解决它的。 - gogaz

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