提问人:xdevel2000 提问时间:2/18/2009 最后编辑:cgpxdevel2000 更新时间:4/26/2009 访问量:1540
如何在 webkit 引擎 (Chrome/Safari) 中以编程方式访问样式表
How to access programmatically to a style sheet in webkit engine (Chrome/Safari)
问:
在 IE 中使用 document.getElementById(“css_id”).styleSheet
或者在 Firefox document.getElementById(“css_id”).sheet 中
我有一个样式表对象要操作,但在 Chrome 和 Safari 中 浏览器,该属性没有。
我怎样才能得到那个对象?
谢谢
答:
2赞
olliej
2/18/2009
#1
呃,在我的测试中,.sheet 工作正常——我的测试用例是
<html>
<head>
<style id="styleElement"></style>
<link id="linkElement" data="data:text/css," rel="stylesheet"></link>
<script>
window.onload=function() {
alert(["<style element>.style: " + document.getElementById('styleElement').sheet,
"<link element>.style: " + document.getElementById('linkElement').sheet])
}
</script>
</head>
</html>
我只在 Safari 3.2 和 WebKit nightlies 中进行了测试,Chrome 只使用 Safari 3.1 中的 WebKit,但我不相信 3.1 和 3.2 之间有任何引擎变化。
评论
0赞
xdevel2000
2/18/2009
我在运行时通过 appendChild 附加一个链接标签,在我尝试通过 getElementById 加载它之后,但似乎 css 文件尚未加载......所以它返回 null。奇怪的行为......
0赞
xdevel2000
2/18/2009
...啊,又奇怪了......如果我尝试通过document.styleSheets获取CSS,它将返回!
0赞
olliej
2/19/2009
@xdevel2000:如果您有一个测试用例,其中 Safari 的行为与 Firefox 和 IE 不同,您应该在 bugs.webkit.org 提交报告
评论