我使用的是现有网站,其中包含一些锚点标记:
<ul>
<li><a id="answer-1" href="/" rel="0">Answer 1</a></li>
<li><a id="answer-2" href="/" rel="1">Answer 2</a></li>
<li><a id="answer-3" href="/" rel="2">Answer 3</a></li>
<li><a id="answer-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)。
答案 0 :(得分:1)
我已经回答了类似的问题,需要手动发送点击事件:Force link to open in mobile safari from a web app with javascript
您可以将该逻辑应用到您的代码中。
答案 1 :(得分:0)
看起来Mobile Safari不支持点击功能。 document.getElementById('answer-1')。click返回undefined,这就是你得到警报的原因。尝试使用.trigger()
答案 2 :(得分:0)
在我看来,在移动设备中无法呼叫click()
。
使用Google Chrome中的开发工具栏,我能够找出单击其中一个锚点时调用的javascript函数。
我能够调用该函数来获得我需要的东西。
我会等几天来标记答案,因为我仍然想知道移动旅行中click()
的替代方案。
答案 3 :(得分:-1)
在Snow Leopard或Lion下进行测试时,我的Mac应用程序也出现了此问题。奇怪的是,它与Mountain Lion合作。
我使用jQuery解决了这个问题。
$('#answer-1').click();
如果网站已加载jQuery,您也可以尝试一下!