javascript - 在 Android Stock 浏览器中的链接上使用 click() 不起作用

标签 javascript dom-events

我想用 JavaScript 触发链接点击,但在 Android Stock 浏览器上运行时遇到问题。以下代码在 Chrome(桌面、Mac)和 Safari (iOS) 中运行良好,但在 Android Stock 浏览器 (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/

知道问题是什么或如何实现这一目标吗?

最佳答案

我找到了解决方案here 。它是纯 JS,不是 jquery,但可能有助于解决 android 原生浏览器上缺少的 click() 问题:

<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>

关于javascript - 在 Android Stock 浏览器中的链接上使用 click() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16936066/

相关文章:

Javascript:修改函数以动态创建表

javascript - strip 错误 400 - 不能多次使用 strip token

javascript - 自动切换到表格单元格中的下一个输入字段

javascript - 劫持onchange事件而不干扰原有功能

javascript - 如何判断两个HTML事件同源(然后判断 "event was processed already")

javascript - 到处禁止 .preventDefault()

javascript - 表行中的重复数据,Angular

javascript - PHP生成带有引号错误的Javascript代码

javascript - 为什么这段 JavaScript 代码(作为 HTML 属性嵌入)不起作用?

javascript - 如何提取动态生成元素的id?