亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

addRule在firefox下的兼容寫法

 更新時(shí)間:2006年11月30日 00:00:00   作者:  
現(xiàn)在用腳本控制 html 元素樣式的方法真的很多很多。
對(duì)單個(gè)元素可以直接 element.style.display=......修改一個(gè)樣式,也可以 element.className=...修改它的多個(gè)樣式。
對(duì)于多個(gè)元素修改樣式可以用腳本直接 import  css文件。
目前項(xiàng)目中有這么一個(gè)需求。 要求改變某 div下所有子孫結(jié)點(diǎn)的樣式,但不改變div本身樣式。
我當(dāng)時(shí)想都沒有想就留下了一下代碼:
復(fù)制代碼 代碼如下:

<style>
  span{background-color:blue;}
  input{background-color:gray}
  button{margin-top:70px;width:50px}
</style>
<!--  by Go_Rush(阿舜) from http://ashun.cnblogs.com/ --->
<div id="a1">
divdiv
  <span>
    spanspan
    <h2>ttttt</h2>
</span>
    <input>
</div>
<button onclick='document.styleSheets[0].addRule("#a1 *","background-color:red")'>轉(zhuǎn)</button>

這段代碼一直工作得很好,直到有一天我同事告訴我,我的模塊讓他的瀏覽器崩潰了。

我打著手電筒,拿著放大鏡在近兩千多行的代碼中找了又找。.
根本找不到問題出在哪里,而且當(dāng)時(shí)對(duì)于上面的代碼絲毫沒有懷疑過。
我們div 的id 是從數(shù)據(jù)庫里面直接讀取的,為數(shù)字類型,比如 <div id="345"></div>等等。
對(duì)于id 能取什么字符,我以前在 ie6和 ff1.5中測試過,
復(fù)制代碼 代碼如下:

<div id="阿舜"></div>
<div id="???"></div>
<div  id="-1"></div>

這樣的id設(shè)置,都可以用 
document.getElementById("阿舜")
document.getElementById("???"),
document.getElementById("-1"),

讀出來不會(huì)有問題,更何況是純數(shù)字呢.

最后經(jīng)過反復(fù)調(diào)試,找到這個(gè)罪魁禍?zhǔn)?nbsp;addRule.
document.styleSheets[0].addRule("#a1 *","background-color:red")
document.styleSheets[0].addRule("#123 *","background-color:red")
都沒有任何問題
下面這行代碼卻會(huì)讓ie死掉. 內(nèi)存和虛擬內(nèi)存一直暴漲,我512的內(nèi)存,一下子xp就提示虛擬內(nèi)存不夠。
document.styleSheets[0].addRule("#-1 *","background-color:red");
同樣,在 ff1.5中,將導(dǎo)致函數(shù)出錯(cuò),但不會(huì)崩潰。
總結(jié):
   1。 ie,ff對(duì) id 的取值相當(dāng)寬容,id幾乎可以是任何字符,中文,英文,字母,數(shù)字,負(fù)數(shù),特殊字符
   2。 但是 addRule 函數(shù)中, id為負(fù)數(shù)時(shí),在 ie和ff都會(huì)失敗,而且ie會(huì)崩潰。
附: 
  addRule在 ff中的兼容寫法
復(fù)制代碼 代碼如下:

<style>
  span{}{background-color:blue;}
  input{}{background-color:gray}
  button{}{margin-top:70px;width:50px}
</style>

<!--  by Go_Rush(阿舜) from http://ashun.cnblogs.com/ --->

<div id="a1">
divdiv
  <span>
    spanspan
    <h2>ttttt</h2>
</span>
    <input>
</div>
<script>
function f(){
  var rule="#a1 *{background-color:red}";
  var index=document.styleSheets[0].cssRules.length;
  document.styleSheets[0].insertRule(rule, index);
}
</script>

<button onclick=f()>轉(zhuǎn)</button>

相關(guān)文章

  • 通過webpack引入第三方庫的方法

    通過webpack引入第三方庫的方法

    這篇文章主要介紹了通過webpack引入第三方庫的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • JavaScript新功能介紹之findLast()和findLastIndex()

    JavaScript新功能介紹之findLast()和findLastIndex()

    最近工作中遇到了一個(gè)關(guān)于查找數(shù)組里面的目標(biāo)元素的方法,所以下面這篇文章主要給大家介紹了關(guān)于JavaScript新功能之findLast()?和findLastIndex()的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • 基于JavaScript+HTML編寫一個(gè)日期選擇插件

    基于JavaScript+HTML編寫一個(gè)日期選擇插件

    在現(xiàn)代Web應(yīng)用程序中,日期選擇器是一個(gè)非常常見的組件,用戶可以使用它來選擇特定的日期,在本篇文章中,我們將使用JavaScript和HTML來創(chuàng)建一個(gè)簡單但功能強(qiáng)大的日期選擇插件,這個(gè)日期選擇插件是比較考驗(yàn)Js基本功的,需要的朋友可以參考下
    2023-10-10
  • 給Flash加一個(gè)超鏈接(推薦使用透明層)兼容主流瀏覽器

    給Flash加一個(gè)超鏈接(推薦使用透明層)兼容主流瀏覽器

    給一個(gè)Flash加一個(gè)超鏈接,原想直接在object外直接套一個(gè)超鏈接即可,試了之后卻發(fā)現(xiàn)不是這么回事
    2013-06-06
  • 10種JavaScript最常見的錯(cuò)誤(小結(jié))

    10種JavaScript最常見的錯(cuò)誤(小結(jié))

    這篇文章主要介紹了10種JavaScript最常見的錯(cuò)誤(小結(jié)),查看了數(shù)千個(gè)項(xiàng)目后,發(fā)現(xiàn)了 10 個(gè)最常見的 JavaScript 錯(cuò)誤。我們會(huì)告訴你什么原因?qū)е铝诉@些錯(cuò)誤,以及如何防止這些錯(cuò)誤發(fā)生
    2019-06-06
  • JS ES6展開運(yùn)算符的幾個(gè)妙用

    JS ES6展開運(yùn)算符的幾個(gè)妙用

    這篇文章主要介紹了JS ES6展開運(yùn)算符的幾個(gè)妙用,想了解ES6的同學(xué),可以參考下
    2021-04-04
  • 原生js添加一個(gè)或多個(gè)類名的方法分析

    原生js添加一個(gè)或多個(gè)類名的方法分析

    這篇文章主要介紹了原生js添加一個(gè)或多個(gè)類名的方法,結(jié)合實(shí)例形式分析了javascript針對(duì)頁面元素屬性動(dòng)態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-07-07
  • 前端顯示json格式化示例代碼

    前端顯示json格式化示例代碼

    項(xiàng)目開發(fā)過程中遇到JSON字符串回顯的情況,直接顯示的話效果很丑,不方便查看,因此需要在前端頁面對(duì)JSON進(jìn)行格式化顯示,下面這篇文章主要給大家介紹了關(guān)于前端顯示json格式化的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • javascript一段創(chuàng)建層的代碼

    javascript一段創(chuàng)建層的代碼

    javascript一段創(chuàng)建層的代碼...
    2007-10-10
  • JavaScript中判斷整字類型最簡潔的實(shí)現(xiàn)方法

    JavaScript中判斷整字類型最簡潔的實(shí)現(xiàn)方法

    這篇文章主要介紹了JavaScript中判斷整字類型最簡潔的實(shí)現(xiàn)方法,本文給出多個(gè)判斷整數(shù)的方法,最后總結(jié)出一個(gè)最短、最簡潔的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2014-11-11

最新評(píng)論