js 中 document.createEvent的用法
如果用戶直接查看文章列表,那么所有的評(píng)論以及評(píng)論框都是不顯示的,但是如果用戶通過(guò)別的頁(yè)面比如首頁(yè)的個(gè)人動(dòng)態(tài)直接定位到這篇日志,那么評(píng)論就應(yīng)該全部顯示。而列表頁(yè)和查看單個(gè)條目的頁(yè)面是同一個(gè)頁(yè)面,這就要求我判斷一下用戶是否定位到該篇日志,如果是,就通過(guò)JS來(lái)觸發(fā) A 標(biāo)簽的點(diǎn)擊事件。
一開(kāi)始我嘗試了一些方法,想當(dāng)然地以為 A 標(biāo)簽和按鈕一樣是有 onclick() 事件的,結(jié)果發(fā)現(xiàn)沒(méi)有,后來(lái)從網(wǎng)上搜了一些資料之后,成功解決了這個(gè)問(wèn)題^_^ 。解決辦法是針對(duì) 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>
語(yǔ)法:
createEvent(eventType)
參數(shù)
描述
eventType
想獲取的 Event 對(duì)象的事件模塊名。
關(guān)于有效的事件類型列表,請(qǐng)參閱"說(shuō)明"部分。
返回值
返回新創(chuàng)建的 Event 對(duì)象,具有指定的類型。
拋出
如果實(shí)現(xiàn)支持需要的事件類型,該方法將拋出代碼為 NOT_SUPPORTED_ERR 的 DOMException 異常。
說(shuō)明
該方法將創(chuàng)建一種新的事件類型,該類型由參數(shù) eventType 指定。注意,該參數(shù)的值不是要?jiǎng)?chuàng)建的事件接口的名稱,而是定義那個(gè)接口的 DOM 模塊的名稱。
下表列出了 eventType 的合法值和每個(gè)值創(chuàng)建的事件接口:
參數(shù)
事件接口
初始化方法
HTMLEvents
HTMLEvent
iniEvent()
MouseEvents
MouseEvent
iniMouseEvent()
UIEvents
UIEvent
iniUIEvent()
用該方法創(chuàng)建了 Event 對(duì)象以后,必須用上表中所示的初始化方法初始化對(duì)象。關(guān)于初始化方法的詳細(xì)信息,請(qǐng)參閱 Event 對(duì)象參考。
該方法實(shí)際上不是由 Document 接口定義的,而是由 DocumentEvent 接口定義的。如果一個(gè)實(shí)現(xiàn)支持 Event 模塊,那么 Document 對(duì)象就會(huì)實(shí)現(xiàn) DocumentEvent 接口并支持該方法。
相關(guān)文章
Javascript類型系統(tǒng)之String字符串類型詳解
這篇文章主要介紹了Javascript類型系統(tǒng)之String字符串類型詳解的相關(guān)資料,需要的朋友可以參考下2016-06-06
js中setTimeout的妙用--防止循環(huán)超時(shí)
本文主要介紹了使用setTimeout實(shí)現(xiàn)防止循環(huán)超時(shí)的方法,具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-03-03
JavaScript 函數(shù)節(jié)流詳解及方法總結(jié)
這篇文章主要介紹了JavaScript 函數(shù)節(jié)流詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-02-02
JavaScript獲取頁(yè)面中超鏈接數(shù)量的方法
這篇文章主要介紹了JavaScript獲取頁(yè)面中超鏈接數(shù)量的方法,涉及JavaScript針對(duì)頁(yè)面元素獲取及運(yùn)算的相關(guān)實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11
10 種最常見(jiàn)的 Javascript 錯(cuò)誤(頻率最高)
本文是小編給大家收藏的JavaScript 中頻度最高的 10 種錯(cuò)誤,我們會(huì)告訴你什么原因?qū)е铝诉@些錯(cuò)誤,以及如何防止這些錯(cuò)誤發(fā)生。需要的朋友參考下2018-02-02
手動(dòng)實(shí)現(xiàn)js短信驗(yàn)證碼輸入框
本文記錄一下自己手動(dòng)實(shí)現(xiàn)的一個(gè)前端常見(jiàn)的短信驗(yàn)證碼輸入組件,從需求到實(shí)現(xiàn)逐步優(yōu)化的過(guò)程。具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06
javascript onkeydown,onkeyup,onkeypress,onclick,ondblclick
昨天群里面的朋友問(wèn)了個(gè)比較有意思的問(wèn)題,keydown,keyup,keypress事件的先后順序。2009-02-02
基于JavaScript實(shí)現(xiàn)繼承機(jī)制之原型鏈(prototype chaining)的詳解
我們知道在JavaScript中定義類的原型方式,而原型鏈擴(kuò)展了這種方式,以一種有趣的方式實(shí)現(xiàn)繼承機(jī)制。prototype 對(duì)象是個(gè)模板,要實(shí)例化的對(duì)象都以這個(gè)模板為基礎(chǔ)??偠灾琾rototype 對(duì)象的任何屬性和方法都被傳遞給那個(gè)類的所有實(shí)例。原型鏈利用這種功能來(lái)實(shí)現(xiàn)繼承機(jī)制2013-05-05
詳細(xì)談?wù)凟S6中的symbol數(shù)據(jù)類型
這篇文章主要給大家介紹了關(guān)于ES6中symbol數(shù)據(jù)類型的相關(guān)資料,Symbol函數(shù)的特性是每一個(gè)Symbol函數(shù)的返回值都是唯一的,可以通過(guò)給symbol函數(shù)傳遞不同的參數(shù)產(chǎn)生具有不同標(biāo)記的值,需要的朋友可以參考下2021-08-08

