在Android 4.0.4默认浏览器上,JavaScript单击事件无法在Samsung Galaxy SIII上运行

时间:2012-07-17 12:08:45

标签: javascript android jquery android-4.0-ice-cream-sandwich

我对Android 4.0.4上的三星Galaxy SIII的默认浏览器有一个最奇怪的问题:

使用以下页面,单击链接将不会触发JavaScript处理程序。从其中一个div中删除单个“a”字母会使它们再次工作......

以下是JS控制台的屏幕截图:

enter image description here

我打开android bug report,如果你有同样的问题,请为它加注星标,谢谢。

提前感谢您的帮助!

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function() {
        alert('attaching click handlers');
        $("#red").click(function(e) {
            alert('red clicked');
            $("body").css("background-color", "#CC0000");
        });
        $("#green").click(function(e) {
            alert('green clicked');
            $("body").css("background-color", "#00CC00");
        });
        $("#blue").click(function(e) {
            alert('blue clicked');
            $("body").css("background-color", "#0000CC");
        });
    });
</script>
</head>
<body>
    <div>
        <p>
            <a id="red" href="#">CHANGE TO RED</a>
        </p>
        <p>
            <a id="green" href="#">CHANGE TO GREEN</a>
        </p>
        <p>
            <a id="blue" href="#">CHANGE TO BLUE</a>
        </p>
    </div>
    <p>Removing one of the a's in the content below will make the JS
        click events work (i.e. trigger background color change), and
        so will changing the 'page' class or id into something else</p>
    <div class="page" id="page">
        <div>aaaaaaaaaaaaaaaaaaa</div>
        <ul>
            <li>
                <div>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</div>
            </li>
        </ul>
    </div>
</body>
</html>

3 个答案:

答案 0 :(得分:2)

实际上至少有一个简单的解决方案:将DIV的id改为不包含'page'子串...

这是一种解决方法而不是一种解决方案,但如果浏览器有错误的定制,还有什么可以做?

答案 1 :(得分:1)

我在三星Galaxy上遇到了类似的问题。找到了这个帖子。改变自:

span id="page" 

到:

span id="pgNow" 

修好了!

答案 2 :(得分:0)

这样的东西也会起作用:

<a href='http://www.google.de' ontouchstart='window.location = this.href'>foo</a>"