我想触发点击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>
使用按钮替换链接时,它也开始在Android上运行:http://jsfiddle.net/xYfdF/8/
知道问题是什么或者如何实现这个目标吗?
答案 0 :(得分:2)
我找到了解决方案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>
答案 1 :(得分: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>