BOM DOM

BOM

  • BOM(Browser Object Model)即瀏覽器對象模型。
    BOM提供了獨(dú)立于內(nèi)容 而與瀏覽器窗口進(jìn)行交互的對象;
    由于BOM主要用于管理窗口與窗口之間的通訊,因此其核心對象是window;

  • 瀏覽器的內(nèi)核

    IE: trident內(nèi)核 (IE瀏覽器)

    Firefox:gecko內(nèi)核 (火狐瀏覽器)

    Safari:webkit內(nèi)核 (蘋果瀏覽器)

    Opera:Blink內(nèi)核 (歐朋瀏覽器)

    Chrome:webkit (谷歌瀏覽器)

DOM

image

DOM1也是存在,只是沒有涉及到事件,DOM3比DOM2多了鍵盤和鼠標(biāo)一些事件

  1. DOM的事件模型: 捕獲----> 冒泡

  2. DOM的事件流(三個階段):捕獲階段---->目標(biāo)階段 -----> 冒泡階段

  3. DOM事件捕獲的具體流程:

window---document---html---body---.... ---目標(biāo)元素

DOM事件的Event對象的常見應(yīng)用:

  • event.preventDefault() : 阻止默認(rèn)事件

  • event.stopPropagation(): 阻止冒泡

  • event.stopImmediatePropagation(): 除了該事件的冒泡行為被阻止之外(event.stopPropagation方法的作用),該元素綁定的后序相同類型事件的監(jiān)聽函數(shù)的執(zhí)行也將被阻止.

  • event.target: 返回觸發(fā)事件的元素

  • event.currentTarget: 返回綁定事件的元素

DOM的自定義事件:

var  eve = new Event('eventName')
dom.addEventListener('eventName',function(){
})  //注冊事件
dom.dispatchEvent(eve);   // 觸發(fā)事件,
---------------------------------------------------------
這個事件不能添加參數(shù),想要添加參數(shù),得自定義 CustomEvent事件
// 添加一個適當(dāng)?shù)氖录O(jiān)聽器
obj.addEventListener("cat", function(e) { process(e.detail) })
// 創(chuàng)建并分發(fā)事件
var event = new CustomEvent("cat", {"detail":{"hazcheeseburger":true}})
obj.dispatchEvent(event)

--

--

--

<body>
    <button>派發(fā)事件</button>
    <input type="text">
    <script>
          // 事件對象
            var  eve = new Event('gc')
            // 注冊事件
            document.querySelector("button").addEventListener('click',function(){
                // this.dispatchEvent(eve)
                document.querySelector("input").dispatchEvent(eve)
                
            })  
            document.querySelector('input').addEventListener('gc',()=>{
                console.log('xxxxxxxxx')
                document.querySelector('input').value = "xxxxx"
            })
           // 觸發(fā)事件
    </script>
</body>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ??JavaScript 與 HTML 之間的交互是通過事件實(shí)現(xiàn)的。 ??事件,就是文檔或?yàn)g覽器窗口中發(fā)生的一些特...
    霜天曉閱讀 3,688評論 1 11
  • js對象 使用特殊的屬性名,不能使用.方式操作 in 運(yùn)算符 通過該運(yùn)算符可以檢查一個對象中是否包含有指定的屬性,...
    強(qiáng)某某閱讀 285評論 0 1
  • javacsript是通過訪問BOM(Browser Object Model)對象來訪問、控制、修改客戶端(瀏覽...
    Lethe35閱讀 698評論 0 4
  • 事件流 JavaScript與HTML之間的交互是通過事件實(shí)現(xiàn)的。事件,就是文檔或?yàn)g覽器窗口中發(fā)生的一些特定的交互...
    DHFE閱讀 910評論 0 3
  • JavaScript 程序采用了異步事件驅(qū)動編程模型。在這種程序設(shè)計(jì)風(fēng)格下,當(dāng)文檔、瀏覽器、元素或與之相關(guān)的對象發(fā)...
    劼哥stone閱讀 1,333評論 3 11

友情鏈接更多精彩內(nèi)容