这是我遇到的一个非常具体的问题,但我不知道如何调试它,甚至不知道它是否可以在移动浏览器上运行。
我有 2 个页面(都在同一个域上,所以我对跨域安全策略没有问题),一个在另一个内部的 iframe 中。由于我需要捕获父子元素的点击,所以我创建了一个覆盖 iframe 的 div,然后在子元素上调用 click 方法:
这是我制作的演示代码:
父文件:
<script>
$(document).ready(function()
{
$("#floating_play_button").click(function()
{
alert("just clicked floating_play_button... will try to click iframe's on click for link2");
$('#slider').contents().find("#link1").click();
});
});
</script>
<div id="floating_play_button" style="cursor:pointer; left: 0px; top:0px; width:100%; height:395px; position:absolute; border:2px solid red;"></div>
<iframe id="slider" src="slider_test.php" width="957" height="337" frameBorder="1" style="border:2px solid green;" ></iframe>
子页面:
<script>
$(document).ready(function()
{
$("#link1").click(function()
{
alert("#link1 clicked...");
});
});
</script>
<div id="link1">
<a href="#">Link 1</a><br />
</div>
这适用于所有桌面浏览器,但不适用于 Android 版 Chrome(2013 年 7 月 22 日起的版本)默认的 Android 浏览器、iPad 或 iPhone。
在子页面中,我尝试了这两种形式,但都不起作用:
$(document).on('click', '#link1', function()
{
alert("on click activated for link1");
});
$("#link1").click(function()
{
alert("#link1 clicked...");
});
作为附加说明,选择器很好。我可以做一些事情,比如通过 jQuery 更改文本属性和类似的东西,它工作正常。我只是不能调用点击事件。
任何提示或指示?
谢谢!