当前位置: 代码迷 >> Web前端 >> 动态调用标签的事件,在谷歌上无法运行
  详细解决方案

动态调用标签的事件,在谷歌上无法运行

热度:56   发布时间:2012-09-22 21:54:54.0
动态调用标签的事件,在谷歌下无法运行

前天做一个 像百度的搜索那个样子有下拉的组件。遇上这么一个问题。当方向盘向下按时找到对应的词在按回车进行搜索,在谷歌下却没有触发我的事件

?

例如:

?

function evtClick(e){

? ? alert('click me!');

}

?

window.onload = function (){

? ? ?var btn=document.getElementById('btn');

? ? ?btn.click();/*(1)*/

}

?

<a id="btn" onclick="evtClick(event)"> 测试</a>

?

结果:

?

ie下可以执行。而谷歌却无法执行。

?

所以我们对(1)

进行改进写法

if(document.all)

{

? ?btn.click();

}else{

? ?var evt = document.createEvent('HTMLEvents');

? ?evt.initEvent('click',true,true);

? ?btn.dispatchEvent(evt);

}

?

?

?

?

定义和用法

dispatchEvent() 方法给节点分派一个合成事件。

语法:

dispatchEvent(evt)
参数 描述
evt 必需。要分派的 Event 对象。

返回值

如果在事件传播过程中调用了?evt?的?preventDefault() 方法,则返回 false,否则返回 true。

抛出

如果 Event 对象?evt?没有被初始化,或者它的 type 属性为 null 或空串,该方法将抛出异常。

描述

该方法将分派一个合成事件,它由?Document.createEvent()?创建,由 Event 接口或它的某个子接口定义的初始化方法初始化。

调用该方法的节点将成为事件的目标节点,该事件在捕捉阶段中第一次沿着文档树向下传播。如果该事件的 bubbles 属性为 true,那么在事件的目标节点自身处理事件后,它将沿着文档树向上起泡。

  相关解决方案