filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=bEnabled,sizingMethod=sSize,src=sURL)
src:必選項。字串(String)。使用絕對或相對 url 地址指定背景影像。如果忽略此參數,濾鏡將不會作用。
firefox無法支援innerText
firefox支援innerHTML但不支援innerText,它支援textContent實作innerText,不過預設把多餘的空格也保留了。如果不用textContent,如果字串裡面不包含HTML程式碼也可以用innerHTML取代。
禁止選取網頁內容
在IE中一般用js:obj.onselectstart=function(){return false;}
而firefox用CSS:-moz- user-select:none
濾鏡的支援(例:透明濾鏡)
IE:filter:alpha(opacity=10);
firefox:-moz -opacity:.10;
捕獲事件
IE:obj.setCapture() 、obj.releaseCapture()
Firefox:document.addEventListener(”mousemove”, mousemovefunction,true);
document.removeEventListener(”mousemove”,mousemovefunction,true);
取得滑鼠位置
IE:event.clientX、event.clientYfirefox:需要事件函數傳遞事件物件
obj.onmousemove=function(ev){
X= ev.pageX;Y=ev.pageY;
}
DIV等元素的邊界問題
例如:設定一個div的CSS::{width:100px;height:100px;border:#000000 1px solid;}
IE中:div的寬度(包括邊框寬度):100px,div的高度(包括邊框寬度):100px;
而firefox:div的寬度(包括邊框寬度):102px,div的高度(包括邊框寬度):102px;
判斷瀏覽器類型
var isIE=document.all ? true : false;
我寫了一個變量,如果支援document.all語法那麼isIE=true,否則isIE=false
在不同瀏覽器下的CSS處理
一般可以用!important來優先使用css語句(僅firefox支援)
例如:{border-width:0px !important;border-width:1px;}
在firefox下這個元素是沒有邊框的,在IE下邊框寬度是1px
document.formName.item(”itemName”) 問題
問題說明:IE下,可使用 document.formName.item(”itemName”) 或 document.formName.elements ["elementName"];Firefox下,只能使用document.formName.elements[" elementName"]。
解決方法:統一使用document.formName.elements["elementName"]。
集合類別物件問題
問題說明:IE下,可以使用()或[]取得集合類別物件;Firefox下,只能使用[]取得集合類別對象。
解決方法:統一使用 [] 取得集合類別物件。
自訂屬性問題
問題說明:IE下,可以使用取得常規屬性的方法來取得自訂屬性,也可以使用 getAttribute() 取得自訂屬性; Firefox下,只能使用 getAttribute() 取得自訂屬性。
解決方法:統一透過 getAttribute() 取得自訂屬性。
eval(”idName”)問題
問題說明:IE下,可以使用 eval(”idName”) 或 getElementById(”idName”) 來取得 id 為 idName 的HTML物件;Firefox下,只能使用 getElementById(”idName”) 來取得 id 為 idName 的HTML物件。
解決方法:統一用 getElementById(”idName”) 來取得 id 為 idName 的HTML物件。
變數名稱與某HTML物件ID相同的問題
問題說明:IE下,HTML物件的ID可以作為 document 的下屬物件變數名稱直接使用,Firefox下則不能;Firefox下,可以使用與HTML物件ID相同的變數名,IE下則不能。
解決方法:使用 document.getElementById(”idName”) 取代 document.idName。最好不要取HTML物件ID相同的變數名,以減少錯誤;在宣告變數時,一律加上var關鍵字,以避免歧義。
const問題
問題說明:Firefox下,可以使用const關鍵字或var關鍵字定義常數;IE下,只能使用var關鍵字來定義常數。
解決方法:統一使用var關鍵字定義常數。
input.type屬性問題
問題說明:IE下 input.type 屬性為唯讀;但是Firefox下 input.type 屬性為讀寫。
解決方法:不修改 input.type 屬性。如果必須要修改,可以先隱藏原來的input,然後在同樣的位置再插入一個新的input元素。
window.event問題
問題說明:window.event 只能在IE下運行,而不能在Firefox下運行,這是因為Firefox的event只能在事件發生的現場使用。
解決方法:在事件發生的函數上加上event參數,在函數體內(假設形參為evt)使用 var myEvent = evt?evt:(window.event?window.event:null)
範例:
<script><BR>function doSomething(evt) {<BR>var my 嘿.event ? window.event : null)<BR>…<BR>}<br><br><STRONG>event.x與event.y問題<BR>問題說明:IE下,even對像有x、y屬性,但是沒有pageX、pageY屬性;Firefox下,even物件有pageX、pageY屬性,但是沒有x、y屬性。 <BR>解決方法:var myX = event.x ? event.x : event.pageX;var myY = event.y ? event.y:event.pageY;<BR>若考慮第8條問題,就改用myEvent代替event即可。 <br><br><STRONG>event.srcElement問題<BR>問題說明:IE下,even物件有srcElement屬性,但沒有target屬性;Firefox下,even物件有target屬性,但沒有srcElement屬性。 <BR>解決方法:使用srcObj = event.srcElement ? event.srcElement : event.target;<BR>如果考慮第8條問題,就改用myEvent代替event即可。 <br><br><STRONG>window.location.href問題<BR>問題說明:IE或Firefox2.0.x下,可以使用window.location或window.location.href;Firefox1.5. x下,只能使用window.location。 <BR>解決方法:使用 window.location 來取代 window.location.href。當然也可以考慮使用 location.replace()方法。 <br><br><STRONG>模態和非模態視窗問題<BR>問題說明:IE下,可以透過showModalDialog和showModelessDialog開啟模態和非模態視窗;Firefox下則不能。 <BR>解決方法:直接使用 window.open(pageURL,name,parameters) 方式開啟新視窗。 <BR>如果需要將子視窗中的參數傳回父窗口,則可以在子視窗中使用window.opener來存取父窗口。如果需要父視窗控制子視窗的話,使用var subWindow = window.open(pageURL,name,parameters);來取得新開的視窗物件。 <br><br><STRONG>frame和iframe問題<BR>以下面的frame為例:<BR><frame src=”xxx.html” id=”frameId” name=”frameName” / ><BR>(1)存取frame物件<BR>IE:使用window.frameId或window.frameName來存取這個frame物件;<BR>Firefox:使用window.frameName來存取這個frame物件;<BR>解決方法:統一使用 window.document.getElementById(”frameId”) 來存取這個frame物件;<br><br>(2)切換frame內容<BR>在IE和Firefox中都可以使用window.document.getElementById(”frameId” ).src = 「xxx.html」或window.frameName.location = 「xxx.html」來切換frame的內容;<BR>如果需要將frame中的參數傳回父窗口,可以在frame中使用parent關鍵字來訪問父視窗。<br><br><STRONG>body載入問題<BR>問題說明:Firefox的body物件在body標籤沒有被瀏覽器完全讀入之前就存在;而IE的body物件則必須在body標籤被瀏覽器完全讀入之後才存在。 <BR>[註] 這個問題尚未實際驗證,待驗證後再來修改。 <BR>[註] 經驗證,IE6、Opera9以及FireFox2中不存在上述問題,單純的JS腳本可以存取在腳本之前已經載入的所有物件和元素,即使這個元素還沒有載入完成。 <br><br><STRONG>事件委託方法<BR>問題說明:IE下,使用 document.body.onload = inject;其中function inject()在這之前已被實現;在Firefox下,使用 document.body.onload = inject();<BR>解決方法:統一使用 document.body.onload=new Function(”inject()”);或 document.body.on = function(){/* 這裡是程式碼 */}<BR>[注意] Function和function的區別<br><br><STRONG>存取的父元素的區別<BR>問題說明:在IE下,使用 obj.parentElement 或 obj .parentNode 存取obj的父結點;在firefox下,使用 obj.parentNode 存取obj的父結點。 <BR>解決方法:因為firefox與IE都支援DOM,因此統一使用obj.parentNode 來存取obj的父結點。 <br><br><STRONG>cursor:hand VS cursor:pointer<BR>問題說明:firefox不支援hand,但ie支援pointer ,兩者都是手形指示。 <BR>解決方法:統一使用pointer。 <br><br><STRONG>innerText的問題<BR>問題說明:innerText在IE中能正常運作,但是innerText在FireFox中卻不行。 <BR>解決方法:在非IE瀏覽器中使用textContent取代innerText。 <BR>範例:<BR>if(navigator.appName.indexOf(”Explorer”) >-1){<BR>document.getElementById(”element”).innerText = 「my text」;<BR>}else{ <BR>document.getElementById(”element”).textContent = “my text”;<BR>}<BR>[註] innerHTML 同時被ie、firefox等瀏覽器支持,其他的,如outerHTML等只被ie支持,最好不用。 <br><br><STRONG>物件寬高賦值問題<BR>問題說明:FireFox中類似 obj.style.height = imgObj.height 的語句無效。 <BR>解決方法:統一使用 obj.style.height = imgObj.height 「px」;<br><br><STRONG>Table操作問題<BR>問題說明:ie、firefox以及其它瀏覽器對於 table 標籤的操作都各不相同,在ie中不允許對table和tr的innerHTML賦值,使用js增加一個tr時,使用appendChild方法也不管用。<BR>解決方法:<BR>//向table追加空行:<BR>var row = otable.insertRow(-1);<BR>var cell = document.createElement(”td”);<BR> cell.innerHTML = 「」;<BR>cell.className = 「XXXX」;<BR>row.appendChild(cell);<BR>[註] 由於俺很少使用JS直接操作表格,這個問題沒有遇過。建議使用JS框架集來操作table,如JQuery。 <br><br><STRONG>ul和ol列表縮排問題<BR>消除ul、ol等列表的縮排時,樣式要寫成:list-style:none;margin:0px;padding: 0px;<BR>其中margin屬性對IE有效,padding屬性對FireFox有效。 ← 此句表述有誤,詳細見↓<BR>[註] 這個問題尚未實際驗證,待驗證後再來修改。 <BR>[註] 經驗證,在IE中,設定margin:0px可以去除列表的上下左右縮排、空白以及列表編號或圓點,設定padding對樣式沒有影響;在Firefox中,設定margin:0px僅可以去除上下的空白,設定padding:0px後僅可以去掉左右縮進,還必須設定list-style:none才能去除列表編號或圓點。也就是說,在IE中只設定margin:0px即可達到最終效果,而在Firefox中必須同時設定margin:0px、padding:0px以及list-style:none三項才能達到最終效果。 <br><br><STRONG>CSS透明問題<BR>IE:filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=60)。 <BR>FF:opacity:0.6。 <BR>[註] 最好兩個都寫,並將opacity屬性放在下面。 <br><br><STRONG>CSS圓角問題<BR>IE:ie7以下版本不支援圓角。 <BR>FF:-moz-border-radius:4px,或-moz-border-radius-topleft:4px;-moz-border- radius-topright:4px;-moz-border-radius-bottomleft:4px;-moz -border-radius- bottomright:4px;。 <BR>[註] 圓角問題是CSS中的經典問題,建議使用JQuery框架集來設定圓角,讓這些複雜的問題留給別人去想吧。</script>

去掉重复并排序的方法:1、使用“Array.from(new Set(arr))”或者“[…new Set(arr)]”语句,去掉数组中的重复元素,返回去重后的新数组;2、利用sort()对去重数组进行排序,语法“去重数组.sort()”。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于Symbol类型、隐藏属性及全局注册表的相关问题,包括了Symbol类型的描述、Symbol不会隐式转字符串等问题,下面一起来看一下,希望对大家有帮助。

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于对象的构造函数和new操作符,构造函数是所有对象的成员方法中,最早被调用的那个,下面一起来看一下吧,希望对大家有帮助。

方法:1、利用“点击元素对象.unbind("click");”方法,该方法可以移除被选元素的事件处理程序;2、利用“点击元素对象.off("click");”方法,该方法可以移除通过on()方法添加的事件处理程序。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于面向对象的相关问题,包括了属性描述符、数据描述符、存取描述符等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于BOM操作的相关问题,包括了window对象的常见事件、JavaScript执行机制等等相关内容,下面一起来看一下,希望对大家有帮助。

foreach不是es6的方法。foreach是es3中一个遍历数组的方法,可以调用数组的每个元素,并将元素传给回调函数进行处理,语法“array.forEach(function(当前元素,索引,数组){...})”;该方法不处理空数组。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),