如何获取浏览器无法解释的css样式表值?

时间:2012-12-28 20:19:03

标签: javascript html css

我想获得在渲染过程中浏览器实际上没有使用的css样式表的值。

例如:

.blur {    
  data : "Great";
}

让我们说我在div上使用这个类:

<div class = "blur"></div>

我尝试过但不起作用。

$(".blur").css("data");

预期输出

Great

编辑:对不起,我之前没有提到这个,现在似乎引起了一些混乱。但请阅读此内容!

正如我在下面的评论中所说,并且我想强调一下,我已经制定了在Internet Explorer上生成一些文本阴影的算法 - 不是最好的算法,但仍然可以解决问题。但是,我试图访问某个元素的text-shadow属性,但我不能,因为Internet Explorer不存储它,因为它不是真正渲染它,所以我需要访问样式表数据。所以我问的问题是再次访问“数据”,它也不像IE8,IE9的textShadow那样存储。

3 个答案:

答案 0 :(得分:4)

您可以将数据存储在HTML5数据属性中。

<div class="blur" data-foo="great"></div>

然后使用jQuery

检索它
$('.blur').data('foo');

答案 1 :(得分:2)

您可以对样式表标签进行原始访问,这是您可以做的最好的,然后您可以使用http://jsfiddle.net/V7Zmn/1/

之类的内容解析您正在查找的信息的文本
// You'd have to find the right style tag
document.getElementsByTagName("style")[0].innerText
// outputs  a string like:   .blur {      color: red;  data : "Great";}  

这看起来像一个大黑客,但我还没想到以更优雅的方式做你需要的方法。,更好的方法是使用类似IE的过滤器相反Text Shadow in Internet Explorer?我认为你试图自己解决这个问题的方法是采取更多的努力而不是它的价值,你将反对流动,与其他代码产生摩擦。

.myclass {    
  text-shadow: 2px 2px gray;
  filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray')
}

Example

答案 2 :(得分:1)

我不确定浏览器是否有义务保留它不理解的属性。您可以尝试使用此代码,该代码显示how to access a stylesheet rule programmatically。然而,正如其他人所指出的,这可能不是CSS的最佳用法,即使它恰好起作用。