可能重复:
innerDocument.getElementById(<elment ID>).click(); doesn't work in Firefox/chrome, in IE it works
我有一个标签式的html页面。
<ul class="tabs">
<li><a href="#tab1" id='accomodation'>Accomodation</a></li>
<li><a href="#tab2" id='relaxation'>Relaxation</a></li>
<li><a href="#tab3" id='recreation'>Recreation</a></li>
</ul>
我来自另一个带点击的HTML,我想显示我之前点击的标签(我将其存储在cookie中)。
因此,我为选项卡添加了ID,当此页面加载时,我调用一个从cookie中读取ID的函数,然后单击关于选项卡。该页面加载时会运行该函数:
<body onLoad="where_from();">
这是功能:
function where_from()
{
if (readCookie('came_from')!="false")
{
pos=readCookie('came_from');
if (pos=='relaxation')
document.getElementById('relaxation').click();
if (pos=='recreation')
document.getElementById('recreation').click();
}
}
它在IE和Firefox中运行良好,但在Chrome中没有任何反应
任何人都可以帮助解决问题吗?
我觉得getelementById.click调用有问题,但我找不到这里描述的任何解决方案。
请帮助!!
答案 0 :(得分:2)
Chrome不支持click()
元素。您可以像这样实现它:
if( !document.body.click) {
HTMLElement.prototype.click = function() {
var t = this;
do {
if( t.onclick) t.onclick();
t = t.parentNode;
} while (t);
}
}
这只是一个近似值,因为它无法正确处理Event对象,但在大多数情况下,这应该可以很好地工作。
答案 1 :(得分:0)
我认为您不需要点击标签链接来更改页面。
你可以使用document.location.href
,
function where_from()
{
if (readCookie('came_from')!="false")
{
pos=readCookie('came_from');
if (pos=='relaxation')
document.location.href = document.getElementById('relaxation').href;
if (pos=='recreation')
document.location.href = document.getElementById('recreation').href;
}
}
答案 2 :(得分:0)
如果document.getElementById('relaxation').click();
不起作用,这可能适用于您:$('#relaxation').click();
例如:
$('#relaxation').click(function(){
//Onclick do something
});
要下载Jquery支持文件,请访问:http://jquery.com/