到目前为止,此代码在 Opera 11.64 中有效。它使第一个 div 成为一个带有绿色文本的红色框,第二个 div 成为一个带有黄色文本的蓝色框。
<div ID="square">square</div>
<div ID="rectangle">rectangle</div>
<script type="text/javascript">
var i={square:{bgc:"#F00",c:"#0F0"},rectangle:{bgc:"#00F",c:"#FF0"}};
var c={bgc:"backgroundColor",c:"color"};
for (x in i){
if (typeof(i[x]) == "object"){
for (y in i[x]){
document.getElementById(x)['style'][c[y]]=i[x][y];
}
}
}
</script>
我只是想弄清楚这与网络浏览器的兼容性如何。它适用于 IE7 或 netscape 7 吗?
我问是因为我的目标是将花哨的样式从 CSS 格式转换为这种新的 javascript 代码,从而最大限度地减少下载生成相同网页所需的代码。
此时,我有许多 CSS 声明,例如:
#square{background:#000;color:#FFF}
#rectangle{background:#0FF;color:#000}
#somethingelse{background:#F0F;color:#000}
该代码中唯一改变的是值。重复“背景”、“颜色”等词,这意味着每次声明浪费了近 15 个字节。
我觉得通过将我的样式打包成这种格式可以节省数据:
var i={square:{bgc:"#F00",c:"#0F0"},rectangle:{bgc:"#00F",c:"#FF0"}};
所以我的问题是,如果我切换我的样式以便 javascript 可以生成它们而不是将它们完全声明为 CSS 样式表,IE7 和 netscape 7 将无法处理内容吗?我想要一些对每个人都有效的东西,但同时减少不必要的字节数。
请指教。谢谢。