js 中 document.createEvent的用法

<a class="comment-mod" οnclick="alert('ss')" href="#">评论</a>

如果用户直接查看文章列表,那么所有的评论以及评论框都是不显示的,但是如果用户通过别的页面比如首页的个人动态直接定位到这篇日志,那么评论就应该全部显示。而列表页和查看单个条目的页面是同一个页面,这就要求我判断一下用户是否定位到该篇日志,如果是,就通过JS来触发 A 标签的点击事件。

一开始我尝试了一些方法,想当然地以为 A 标签和按钮一样是有 onclick() 事件的,结果发现没有,后来从网上搜了一些资料之后,成功解决了这个问题^_^ 。解决办法是针对 IE 和 FF编写不同的逻辑,部分代码如下:
<script>
 var comment = document.getElementsByTagName('a')[0];
 
if (document.all) {
 // For IE

comment.click();

} else if (document.createEvent) {
   //FOR DOM2
var ev = document.createEvent('HTMLEvents');

ev.initEvent('click', false, true);
 comment.dispatchEvent(ev);
}
</script>

语法:

createEvent(eventType)

参数

描述

eventType

想获取的 Event 对象的事件模块名。

关于有效的事件类型列表,请参阅"说明"部分。

返回值

返回新创建的 Event 对象,具有指定的类型。

抛出

如果实现支持需要的事件类型,该方法将抛出代码为 NOT_SUPPORTED_ERR 的 DOMException 异常。

说明

该方法将创建一种新的事件类型,该类型由参数 eventType 指定。注意,该参数的值不是要创建的事件接口的名称,而是定义那个接口的 DOM 模块的名称。

下表列出了 eventType 的合法值和每个值创建的事件接口:

参数

事件接口

初始化方法

HTMLEvents

HTMLEvent

iniEvent()

MouseEvents

MouseEvent

iniMouseEvent()

UIEvents

UIEvent

iniUIEvent()

用该方法创建了 Event 对象以后,必须用上表中所示的初始化方法初始化对象。关于初始化方法的详细信息,请参阅 Event 对象参考。

该方法实际上不是由 Document 接口定义的,而是由 DocumentEvent 接口定义的。如果一个实现支持 Event 模块,那么 Document 对象就会实现 DocumentEvent 接口并支持该方法。

转载于:https://www.cnblogs.com/baizx/archive/2010/08/29/1811745.html

js 中 document.createEvent的用法-转载相关推荐

  1. html dom createevent,js 中 document.createEvent的用法

    js 中 document.createEvent的用法 更新时间:2010年08月29日 23:22:02   作者: 用该方法创建了 Event 对象以后,必须用上表中所示的初始化方法初始化对象. ...

  2. JS中数组Array的用法{转载}

    js数组元素的添加和删除一直比较迷惑,今天终于找到详细说明的资料了,先给个我测试的代码^-^ var arr = new Array(); arr[0] = "aaa"; arr[ ...

  3. JS中常用方法的封装【转载】

    JS中常用方法的封装[转载] 转载理由:我想这么好的内容,可不能因为作者的博客倒闭了就没了,所以就Fork了一份,并复制了一份到自己的博客. 编写自己的代码库(javascript常用实例的实现与封装 ...

  4. js中document通过ID获取的一些使用方法

    js中document通过ID获取的一些使用方法 document.getElementById("link").href;  document.getElementById(&q ...

  5. js中的extend的用法及其JS中substring与substr的区别

    1.    JS中substring与substr的区别 之前在项目中用到substring方法,因为C#中也有字符串的截取方法Substring方法,当时也没有多想就误以为这两种方法的使用时一样的. ...

  6. js中的escape的用法汇总

    js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 1 ...

  7. Javascript中document.execCommand()的用法

    document.execCommand()方法处理Html数据时常用语法格式如下: document.execCommand(sCommand[,交互方式, 动态参数]) 其中:sCommand为指 ...

  8. js中“||”和“”的高级用法 js,与或运算符 || 妙用

    网络上找到的一篇关于逻辑与和逻辑或的文章,详细记录一下. http://www.jb51.net/article/21339.htm 例1:用于赋值 &&:从左往右依次判断,当当前值为 ...

  9. C#事件中sender的小用法(转载)

    C#事件中sender的小用法 开WPF新坑了,看了WPF的炫酷界面,再看看winForm实在是有些惨不忍睹(逃).后面会开始写一些短的学习笔记. 一.什么是sender sender最常见到的情况就 ...

最新文章

  1. C++STL 优先队列priority_queue使用
  2. 别的设计师比你又快又好,是因为你不知道他们在用介个!
  3. 在虚拟机安装OpenSuse Tumbleweed
  4. 关于armv7指令集的一个直观数据
  5. [SDOI2006] 保安站岗
  6. ES5-15 数组基础、数组方法、数组排序
  7. python numpy数组画图_python – Numpy和Pyplot的条件绘图
  8. SQL中FOR XML子句的各种用法,包括FOR XML字句的四种基本模式:AUTO模式、RAW模式、PATH模式和EXPLICIT模式...
  9. 多臂老虎机导论(二)Stochastic Bandits
  10. 论文总结Graph Neural Networks-A review of methods and Applications
  11. matlab 汽车雷达模拟器,雷达回波模拟器在汽车雷达测试中的应用
  12. Java实现手机号邮箱号登录_手机号、邮箱或者用户名登录的实现方法
  13. SpringBoot快速整合Quartz动态管理定时任务
  14. LocalDate 获取英文星期
  15. SpringBoot+Hibernate配置
  16. 关于前后台数据的提交方式
  17. 【动手学习深度学习笔记】
  18. Caché 变量大全
  19. CSDN上代码块背景颜色的设置
  20. 28张图解 | 互联网究竟是「如何连接,如何进行通信」的?

热门文章

  1. 【ntp】虚拟机时间莫名异常
  2. 底层实现_Redis有序集合zset的底层实现
  3. intranet的计算机环境包括,计算机四级考试网络工程师考点:企业网与Intranet
  4. kafka删除队列_没想到 Kafka 还会这样问,学会这些带你轻松搞定大厂面试!
  5. window.location.href不打开新窗口_嘿,这条微博值得一看:不登录如何访问页面
  6. python换行输入数据_python将回车作为输入内容的实例
  7. python归一化sklearn_用sklearn进行对数据标准化、归一化以及将数据还原详解
  8. 傅里叶变换处理音频c++_积分变换(1)——傅里叶级数
  9. java 属性不序列化_怎样对带有不可序列化属性的Java对象进行序列化
  10. 地理必修一三大类岩石_高一地理必修一知识点总结归纳