我有一个选项卡式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>我来自另一个带有click的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调用出现了一些问题,但是我找不到这里描述的任何解决方案。
救命啊!!
发布于 2012-04-06 09:14:46
Chrome不支持元素上的click()。您可以这样实现它:
if( !document.body.click) {
HTMLElement.prototype.click = function() {
var t = this;
do {
if( t.onclick) t.onclick();
t = t.parentNode;
} while (t);
}
}这只是一个近似,因为它不能正确地处理事件对象,但在大多数情况下,这应该是相当好的工作。
发布于 2012-04-06 09:23:54
我认为您不需要单击选项卡链接来更改页面。
你可以用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;
}
}下面是一个手舞足蹈的例子,这是从这里复制的。
发布于 2012-04-06 09:26:06
如果document.getElementById('relaxation').click();不起作用,这可能适用于您:$('#relaxation').click();
例:
$('#relaxation').click(function(){
//Onclick do something
});要下载Jquery文件,请访问:http://jquery.com/
https://stackoverflow.com/questions/10041377
复制相似问题