麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > JS > 正文

addRule在firefox下的兼容寫法

2024-09-06 12:44:23
字體:
來源:轉載
供稿:網友
現在用腳本控制 html 元素樣式的方法真的很多很多。
對單個元素可以直接 element.style.display=......修改一個樣式,也可以 element.className=...修改它的多個樣式。
對于多個元素修改樣式可以用腳本直接 import  css文件。
目前項目中有這么一個需求。 要求改變某 div下所有子孫結點的樣式,但不改變div本身樣式。
我當時想都沒有想就留下了一下代碼:
代碼如下:
<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")'>轉</button>

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

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

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

讀出來不會有問題,更何況是純數字呢.

最后經過反復調試,找到這個罪魁禍首 addRule.
document.styleSheets[0].addRule("#a1 *","background-color:red")
document.styleSheets[0].addRule("#123 *","background-color:red")
都沒有任何問題
下面這行代碼卻會讓ie死掉. 內存和虛擬內存一直暴漲,我512的內存,一下子xp就提示虛擬內存不夠。
document.styleSheets[0].addRule("#-1 *","background-color:red");
同樣,在 ff1.5中,將導致函數出錯,但不會崩潰。
總結:
   1。 ie,ff對 id 的取值相當寬容,id幾乎可以是任何字符,中文,英文,字母,數字,負數,特殊字符
   2。 但是 addRule 函數中, id為負數時,在 ie和ff都會失敗,而且ie會崩潰。
附: 
  addRule在 ff中的兼容寫法
代碼如下:
<style>
  span{}{background-color:blue;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久草视频福利在线观看 | 涩涩伊人| 91精品欧美一区二区三区 | 免费观看黄色一级视频 | av色哟哟| 日本最新免费二区三区 | 欧美日韩在线视频一区 | 国产精品成人av片免费看最爱 | 国产毛片视频 | 男女一边摸一边做羞羞视频免费 | 午夜视频久久 | 欧美在线观看视频一区 | 黄色电影免费网址 | 在线免费av观看 | 免费毛片电影 | 禁漫天堂久久久久久久久久 | 成人三级免费电影 | 日韩av片在线免费观看 | 999久久久国产999久久久 | 日韩字幕在线观看 | 海外中文字幕在线观看 | 欧美三级日本三级少妇99 | 国产精品一区在线观看 | 欧美性生活免费视频 | 国产精品啪一品二区三区粉嫩 | 九一传媒在线观看 | www.91视频com | 一本视频在线观看 | 日本成人一区二区 | 国产精品久久久久久久久久久久久久久久 | 久久精品re | 黄色网址免费在线播放 | 影视免费观看 | 91免费高清视频 | 国产九色在线播放九色 | 中文字幕www | 91美女福利视频 | 欧美一区二区三区中文字幕 | 国产精品久久久久久久久久久久久久久久 | 91av在线影院 | 欧美成网 |