摘要:微軟在網頁技術上加入了不少專屬事物,計有以及微軟自家的格式等,使不少網頁使用非微軟平臺及瀏覽器無法正常顯示。關于第三個參數可以看我之前的文章在年推出,直到年后的年,微軟發布的才遵循這個標準。
文章首發在《你可能不知道的前端知識點》專欄,備份地址:https://github.com/justjavac/...
API (Web 或 XML 頁面) = DOM + JavaScript(腳本語言)
問題問題從一個異常開始。
有網友寫了如下代碼:
function download() { console.log(1); }
下載
當點擊按鈕的時候,卻報錯了:
Uncaught TypeError: download is not a function
報錯信息很奇怪:download 不是一個函數。如果我們在 devtools console 執行 $0.download 會得到 "",一個空字符串。
解讀先說答案:HTML 5 中為 增加了 download 屬性,所以在 a 上調用 download() 會提示 download is not a function,因為所有的屬性都是字符串。
同樣的坑還有:如果把表單里面的某個控件 id 設置為 submit,會導致表單提交 form.submit() 出錯,錯誤信息和這個類似,submit is not a function。
DOM實際上沒有沒有 DOM0 級的官方標準。
DOM 是 Netscape 最早提出,并且與 JS 的誕生是在同一個時間。Netscape2 瀏覽器首先實現了 DOM,定義了獲取文檔中一些元素的入口,比如 document.forms 和 document.images,后期的瀏覽器為了實現向后兼容,同樣也支持這些接口。在 JS 事件中,我們經常提及的 DOM 事件,也是在這個階段定義的。其它比較常用的還有 CSS 訪問、DOM 遍歷、等。。。
DOM(Document Object Model) 的繁榮可以追溯至 1990 年代后期微軟與 Netscape 的“瀏覽器大戰”,雙方為了在 JavaScript 與 JScript 一決生死,于是大規模的賦予瀏覽器強大的功能。微軟在網頁技術上加入了不少專屬事物,計有 VBScript、ActiveX、以及微軟自家的 DHTML 格式等,使不少網頁使用非微軟平臺及瀏覽器無法正常顯示。
1998 年 10 月,DOM1 成為了 W3C 的推薦標準。DOM1 級由兩個模塊組成:DOM核心(DOM Core)和DOM HTML。分別定義了:
DOM核心:針對任何結構化文檔的標準模型
DOM HTML:只針對HTML文檔的標準模型
DOM1 就像一個剛出生的孩子,肯定有各種不足。于是各種瀏覽器都在原來的基礎上添加新的私有 API,比如 attachEvent 和 addEventListener,于是 W3C 又推出了 DOM level 2。而這個版本最大的變化就是 添加事件監聽的方法統一成了 addEventListener,并增加了第三個參數。(關于第三個參數可以看我之前的文章 #6 )
W3C 在 2000 年推出 DOM level 2,直到 9 年后的 2009 年,微軟發布的 IE9 才遵循這個標準。WTF!!!
后來陸續推出了 DOM3 和 DOM 4。
參考鏈接DOM概述 - Web API 接口 | MDN
文檔對象模型 (DOM) - Web API 接口 | MDN
探索 DOM Level 3 Core 的關鍵特性 第 1 部分 第 2 部分
DOM級別 | GCidea"s blog
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/51436.html
摘要:微軟在網頁技術上加入了不少專屬事物,計有以及微軟自家的格式等,使不少網頁使用非微軟平臺及瀏覽器無法正常顯示。關于第三個參數可以看我之前的文章在年推出,直到年后的年,微軟發布的才遵循這個標準。 文章首發在《你可能不知道的前端知識點》專欄,備份地址:https://github.com/justjavac/... API (Web 或 XML 頁面) = DOM + JavaScript...
摘要:一前言在接到需求后很快的做完了然后做本地測試發現因為是請求里面參數數據是查詢人名所以攜帶中文,對此進行了問題分析。 一、前言 在接到需求后很快的做完了然后做本地測試發現: java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are ...
摘要:一前言在接到需求后很快的做完了然后做本地測試發現因為是請求里面參數數據是查詢人名所以攜帶中文,對此進行了問題分析。 一、前言 在接到需求后很快的做完了然后做本地測試發現: java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are ...
閱讀 890·2021-10-25 09:44
閱讀 1262·2021-09-23 11:56
閱讀 1183·2021-09-10 10:50
閱讀 3131·2019-08-30 15:53
閱讀 2134·2019-08-30 13:17
閱讀 617·2019-08-29 18:43
閱讀 2491·2019-08-29 12:57
閱讀 855·2019-08-26 12:20