javascript 跨瀏覽器的一些小技巧

2021-08-30 19:00:30 字數 1465 閱讀 3063

用網頁調整格式實在是太複雜了,湊合看看吧。。。。。

事件處理分為兩種,一種為冒泡型事件,另一種為捕獲型事件

冒泡型事件:是從特定目標到最不特定的目標

捕獲型事件:是從最不特定的物件開始觸發,一直到最精確的物件。

dom標準同時支援兩種事件,並且捕獲型事件先發生。

window-->document-->body-->div-->div-->body-->document-->window

比較特殊的,在

dom事件模型中,文字節點也會觸發事件,而

ie中是不會的。

window-->document-->body-->div-->text-->text-->div-->body-->document-->window ie

和dom

在事件及事件處理中有很多不一樣的。 在

ie中如果按鍵代表乙個字元(非

shift

、ctrl

、alt

等),則

keycode

將返回字元的**,即

unicode值。

在dom

中獲得字元**用

charcode 

var icharcode = oevent.charcode;

獲得字元使用

var schar = string.fromcharcode(oevent.charcode);

如果不確定按鍵是否包含字元,則使用

ischar

來判斷if(oevent.ischar) 把

ie的event

事件統一成

dom的形式,建立

formatevent

方法。建立

eventutil

eventutil.formatevent = function (oevent)

if(oevent.type == "mouseout")else if(oevent.type == "mouseover")

oevent.stoppropagation = function ()

oevent.target = oevent.srcelement;

oevent.time = (new date).gettime();

} return oevent;

}

ie與

dom的

event

獲取方法也不大一樣。特別說明的是函式的

caller

屬性。每個函式都有

caller

屬性,指向呼叫它的方法的引用。即,

funca()

呼叫funcb(),funcb.caller

就等於funca

eventutil.getevent = function()else

}

JavaScript 跨瀏覽器新增移除事件

那麼我們希望解決非ie 瀏覽器事件繫結哪些問題呢?1.支援同一元素的同一事件控制代碼可以繫結多個監聽函式 2.如果在同一元素的同一事件控制代碼上多次註冊同一函式,那麼第一次註冊後的所有註冊都被忽略 3.函式體內的this 指向的應當是正在處理事件的節點 如當前正在執行事件控制代碼的節點 4.監聽函式...

跨瀏覽器用javascript獲取視窗的位置和大小

跨瀏覽器獲取位置 var leftx typeof window.screenleft number window.screenleft window.screenx var topy typeof window.screentop number window.screentop window.sc...

瀏覽器跨域

前端部分,簡單的封裝乙個promise版的ajax let myajax function headers else xhr.open method,path for let key,value of object.entries headers xhr.send body myajax heade...