如何訪問使用外部或嵌入樣式表指定的元素的樣式聲明。例如:如何訪問使用ID選擇器在嵌入樣式表中定義的元素的width屬性。 我知道CSSRules對象可以做到這一點......但它是依賴於瀏覽器的。例如:在Chrome中,對象爲空...那麼,瀏覽器獨立的方式是什麼?使用javascript訪問CSS類
回答
這確實是依賴於瀏覽器...我有一些代碼,我用它來創建一個自動擴展文本區域,改編自發現的代碼there。
注意,這裏的$
功能是從Prototype。
function getStyleFromCss(el, style) {
/* Hack required by IE */
var value = $(el).getStyle(style);
if (!value) {
/* For other browsers. Actually this equals 'window'. Use that
* if Opera fails on you. */
if(document.defaultView) {
value = document.defaultView.getComputedStyle(el, null).
getPropertyValue(style);
// for IE
} else if(el.currentStyle) {
value = el.currentStyle[style];
}
}
if(value.length > 0){
/* if the value returned has the word px in it, we check for
* the letter x */
if (value.charAt(value.length-1) == "x") {
value = parseInt(value.substring(0, value.length-2));
}
}
return value;
}
從原型的getStyle()
函數定義這種方式,你應該能夠很容易地使其適應您的需求。
getStyle: function(element, style) {
element = $(element);
style = style == 'float' ? 'cssFloat' : style.camelize();
var value = element.style[style];
if (!value || value == 'auto') {
var css = document.defaultView.getComputedStyle(element, null);
value = css ? css[style] : null;
}
if (style == 'opacity') return value ? parseFloat(value) : 1.0;
return value == 'auto' ? null : value;
},
這是IE9之前和所有其他瀏覽器做不同的情況。要獲得包括無論是應用於從樣式表對象的對象對當前的風格,你可以使用這樣的事情:
function getStyle(el, cssprop) {
if (document.defaultView && document.defaultView.getComputedStyle)
return document.defaultView.getComputedStyle(el, null)[cssprop];
else //IE
return el.currentStyle[cssprop];
}
只是一個問題:是否需要document.defaultView(第一次看到它)?其他選項而不是defaultView? – 2012-04-28 14:32:38
謝謝。如果你刪除了你的第二個人,我會提高你的答案。 – 2012-04-28 14:38:22
@ BenniKa - 我糾正了它。 – jfriend00 2012-04-28 14:47:47
- 1. 在javascript中跨域訪問CSS類
- 2. 訪問使用JavaScript
- 3. 無法訪問CSS從JavaScript
- 4. JavaScript訪問CSS引擎
- 5. 訪問值使用JavaScript
- 6. 訪問ZF2使用javascript
- 7. 使用javascript訪問img src
- 8. 使用JavaScript訪問DLL
- 9. 使用ruby訪問Javascript值
- 10. 訪問控制使用Javascript
- 11. 訪問和使用JavaScript
- 12. 使用Javascript - 訪問對象
- 13. JavaScript類 - 訪問在飛行
- 14. 的Javascript訪問同一類
- 15. 從JavaScript函數訪問值並在CSS中使用
- 16. 在webview中如何使用javascript CSS樣式訪問HTML文件
- 17. 如何使用JavaScript獲取訪問過的鏈接CSS樣式
- 18. 使用可訪問性支持CSS或JavaScript的瀏覽器?
- 19. 使用Oauth使用Javascript訪問Api
- 20. 使用參數訪問類
- 21. 使用PowerShell訪問DLL類
- 22. 訪問使用Type類
- 23. 使用Tomcat訪問Java類
- 24. 使用元類訪問子
- 25. Javascript功能無法訪問CSS樣式
- 26. 使用getElementsByClassName訪問內聯CSS屬性
- 27. C#webbrowser如何訪問HtmlElement CSS類?
- 28. 從CSS模塊訪問全局類
- 29. 使用JavaScript/CSS
- 30. CSS使用Javascript
要清楚:你試圖訪問適用於該元素的規則,還是試圖找出適用於特定元素的最終樣式? – Phrogz 2012-04-28 14:58:54