javascript - 如何使用 JavaScript 获取跨浏览器的文字样式字符串?

标签 javascript jquery attributes cross-browser coding-style

我发现需要在浏览器中提取元素的设置样式(由用户完成)。我必须能够在我的服务器上使用检索到的样式(服务器端 javascript 和 jQuery)。现在的问题是,许多浏览器似乎使用自己的命名约定或喜欢将简写形式与各个元素分开,而其他浏览器则不这样做。

对我来说,一个解决方案是获取元素的文字样式字符串(不必考虑样式表中的样式)。在 Firefox/Chrome 中这会起作用:

node.getAttribute('style')

不幸的是,这在 Internet Explorer 5/6/7 中是不可能的。我认为这将是一个解决方案:

function getStyleStr(node) {
    return typeof(node.getAttribute('style')) !== 'string' ? node.style.cssText : node.getAttribute('style');
}

http://jsfiddle.net/8p5BN/6/

不幸的是,node.style.cssText 不返回此处描述的文字字符串:http://javascript.gakaa.com/style-csstext.aspx

有没有更好的方法来跨浏览器检测同名元素的设置样式?

最佳答案

http://upshots.org/?p=112

您需要访问 dom 元素的计算样式和/或当前样式。这应该给你你需要的一切,它会考虑所有形式的样式(内联、声明的 css 和继承的属性)

关于javascript - 如何使用 JavaScript 获取跨浏览器的文字样式字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4233273/

相关文章:

JavaScript 命名空间声明

javascript - 如何在 jquery ui 对话框中初始化按钮

jquery - 是否可以通过创建 Typescript 的子类来扩展 JQuery?

javascript - jquery 基于复选框更新总数

jquery - 具有动态添加字段的客户端验证

python - 为什么自定义类型接受 Python 中的临时属性(而内置函数不接受)?

xml - 如何通过单个XPath表达式选择某些子项的所有属性?

javascript - Angular ng-max 绑定(bind)问题

javascript - 使用复选框中的值填充文本框

java - 如何仅显示 thymeleaf 中不为空的变量