我正在尝试一些JavaScript代码并遇到一个问题,即元素告诉我无法点击。目标是根据URL中的锚点激活选项卡。这是简短版本:
<tab onClick="showTab('Dogs')">Dogs</tab>
<tab onClick="showTab('Cats')">Cats</tab>
<script type="text/javascript">
var chunks = document.URL.split('#')
if(chunks.length > 1) {
var anchored_tab = chunks.pop().toLowerCase()
var tabs = document.getElementsByTagName('tab')
for(i in tabs) {
if(tabs[i].innerHTML.toLowerCase() == anchored_tab) {
alert("trying to click tab "+tabs[i].innerHTML)
tabs[i].click() // TypeError: Object#<HTMLElement> has no method 'click'
}
}
}
</script>
假设URL以“#dogs”结尾,警告正确地说“尝试单击制表符狗”,但随后我在下一行说明该元素没有click
方法。
我正在测试Chrome 12。
答案 0 :(得分:0)
您可以在上面的代码上添加以下代码,这将在不允许您直接单击()的浏览器中为实际的单击事件添加触发事件。请注意,此类功能通常包含在诸如jquery或prototype之类的库中。
if(typeof HTMLElement!='undefined'&&!HTMLElement.prototype.click) {
HTMLElement.prototype.click=function() {
var evt = this.ownerDocument.createEvent('MouseEvents');
evt.initMouseEvent('click', true, true, this.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
this.dispatchEvent(evt);
}
}
答案 1 :(得分:0)
并非所有浏览器都支持html元素上的click()。你可以试试.onclick(),但你最好的选择是使用跨浏览器支持的点击事件触发器,如jQuery或其他js库