Javascript-在iOS Safari中以编程方式单击锚点
Javascript - Programmatically Click Anchor in iOS Safari
我在一个现有的网站上工作,有一些锚标签,比如:
<ul>
<li><a id="answerswer-1" href="/" rel="0">Answer 1</a></li>
<li><a id="answerswer-2" href="/" rel="1">Answer 2</a></li>
<li><a id="answerswer-3" href="/" rel="2">Answer 3</a></li>
<li><a id="answerswer-4" href="/" rel="3">Answer 4</a></li>
</ul>
我需要根据用户的选择以编程方式单击其中一个锚点。
在桌面上,在IE中,这是有效的:
document.getElementById('answer-1').click();
然而,在iOS safari中不太适用,这会导致弹出窗口:
if (!document.getElementById('answer-1').click) alert ('Oh no!');
据我所知,他们还连接了一些其他的javascript,用来发送rel
标记作为答案。有没有其他方法可以在iOS Safari中以编程方式单击锚点?还是我需要深入挖掘他们的javascript,以了解点击锚时调用的是什么?
我也试过这个,但不起作用:
window.location.href = document.getElementById('answer-1').href;
他们一定在某个地方用Javascript做了更多的工作(也许是jquery)。
我已经回答了一个类似的问题,其中需要手动调度点击事件:使用javascript 在移动safari中强制打开链接
您可以将该逻辑应用到代码中。
看起来Mobile Safari不支持点击功能。document.getElementById('swer-1').click返回undefined,这就是您收到警报的原因。尝试使用.trigger()
在我看来,似乎没有办法在移动safari中调用click()
。
使用Google Chrome中的dev工具栏,我能够计算出当您单击其中一个锚点时调用的javascript函数。
我只需要调用函数就可以得到我需要的东西。
我会等几天来标记答案,因为我仍然想知道移动狩猎中click()
的替代方案。
在Snow Leopard或Lion下测试时,我的Mac应用程序也出现了此问题。奇怪的是,它与山狮合作。
我使用jQuery解决了这个问题。
$('#answer-1').click();
如果网站已经加载了jQuery,你也可以试一试!
相关文章:
- 单击()的另一种方式
- 在带有 标记的树节点上以编程方式触发单击事件
- 可以通过编程方式在javascript或jquery中单击箭头键
- 通过它查询谷歌地图上已经存在的标记's的lat和long,并以编程方式在其上触发一个单击事件
- 单击时在参数之间切换的最佳方式
- 如何以编程方式单击下拉列表中的li
- 处理多次单击事件的最佳方式
- 以编程方式触发空格键单击文本区域
- “防止”以编程方式单击元素
- 如何以编程方式单击从其他页面加载的按钮
- 通过单击按钮或表单提交禁用注册按钮,这两种方式都会阻止表单提交
- 以编程方式单击 UIWebView 中的“提交”按钮(无元素 ID、名称、类或标记)
- 角度重定向到其他方式而不检测视图,但当我单击后退按钮时它可以工作
- 以编程方式单击<A>来自AngularJS指令中的单元测试
- 触发器提示's以编程方式单击“确定”按钮
- Javascript-在iOS Safari中以编程方式单击锚点
- 以编程方式单击li元素
- 如何在vb.net中使用javascript以编程方式单击链接
- 以编程方式单击另一个网页中的输入按钮
- 如何以编程方式单击具有类似类的页面上的所有按钮并添加延迟