【问题标题】:Howto get cross-browser literal style string with JavaScript?如何使用 JavaScript 获取跨浏览器的文字样式字符串?
【发布时间】:2010-11-20 14:51:16
【问题描述】:

我发现需要在浏览器中提取元素的设置样式(由用户完成)。我必须能够在我的服务器(服务器端 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

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

【问题讨论】:

  • 只是好奇:你为什么要这么做?
  • 长话短说,基本上我需要根据属性(包括样式)计算一个树层次结构,以后可以由我的服务器使用。
  • @Tom:你想在你的服务器上用它做什么?
  • @thejh 我认为这与找到这个问题的答案无关。
  • @Tom:没错——除非你将它用于可以使用另一种方法更容易解决的问题,因此问题的答案变得无关紧要。

标签: javascript jquery attributes cross-browser coding-style


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-14
    • 1970-01-01
    • 2013-06-25
    • 1970-01-01
    相关资源
    最近更新 更多