0

我想用 JavaScript 触发对链接的点击,但在 Android 股票浏览器上运行时遇到问题。以下代码在 Chrome(桌面、Mac)和 Safari(iOS)中运行良好,但在 Android 股票浏览器(Samsung Galaxy S3)中运行良好:

<a href="test" id="a">One</a>
<a href="test" id="b">Two</a>

<script>
document.getElementById('a').addEventListener("click", function (e) {
    e.preventDefault();
    document.getElementById('b').click();
});

document.getElementById('b').addEventListener("click", function (e) {
    e.preventDefault();
    alert("test");
});
</script>

http://jsfiddle.net/xYfdF/7/

当用按钮替换链接时,它也开始在 Android 上工作:http: //jsfiddle.net/xYfdF/8/

知道问题是什么或如何以其他方式实现吗?

4

2 回答 2

2

我在这里找到了解决方案。它的纯 JS,不是 jquery,但可能有助于解决click()android 股票浏览器上的缺失:

<a href="http://stackoverflow.com/" id="link">click here</a>

<script type="text/javascript">
    //same as: document.getElementById("link").click()
    var clickEvent = document.createEvent('MouseEvent');
    clickEvent.initEvent('click', true, true);
    document.getElementById("link").dispatchEvent(clickEvent);
</script>
于 2016-02-24T16:25:09.297 回答
1

您需要使用 Jquery 将点击事件转换为触摸事件,如下所示

<script type="text/javascript">
    jQuery(document).ready(function() 
    {
       jQuery('#a').bind("touchstart touchend touchmove click",function(event) 
       {
    event.preventDefault();
         jQuery('#b').click();
       });

      jQuery('#b').bind("touchstart touchend touchmove click",function(event) 
       {
    event.preventDefault();
         alert('Test');
       });
    });
 </script>
于 2013-06-05T09:29:20.643 回答