gpt4 book ai didi

javascript - 如何在 IE9 剥离之前获取样式属性值

转载 作者:数据小太阳 更新时间:2023-10-29 03:51:58 25 4
gpt4 key购买 nike

我试图在 IE9-10 去除无效值之前获取 style 属性的值。到目前为止,我已经尝试了以下所有变体 -

$0.attributes.style$0.样式$0.getAttribute('样式')

但似乎如果我尝试设置一个无效值,我将无法访问它 -

<div style="display: none; color: ${fake-value}">

</div>

以上所有内容只会返回 display: none,因为 IE9-10 会去除无效值。

请注意,我已经尝试了很多变体,所以如果不可能,那也没关系,但是你试过了吗你能试试吗答案没有多大帮助,除非他们被确认要做某事:)

最佳答案

不幸的是,由于 IE9 实现 CSS 对象模型规范的方式,这是不可能的。

如果我们看一下规范,我们可以假设会发生以下情况(强调我的):

6.7.1 Parsing CSS Values

To parse a CSS value value for a given property means to follow these steps:

  • Let list be the value returned by invoking parse a list of component values from value.

  • Match list against the grammar for the property property in the CSS specification.

  • If the above step failed, return null.

  • Return list.

由于您的自定义颜色值与颜色属性的语法不匹配,IE 返回 null,在 DOM 中显示该属性之前,基本上会忽略该属性的解析。


虽然您已经提到您不想,但我再次建议您改用数据属性,这将为您提供跨平台的解决方案:

<div style="display: none;" data-color="${fake-value}">

如果您真的不能使用数据属性,还有一种选择是通过编程方式查看页面的源代码,然后将其解析为您指定的值。我不推荐这个,但如果这是你想探索的途径,你可以找到一个相关的问题here .


更新:

有趣的是,如果我们查看 CSS Style Declarations 的 DOM 规范我们发现:

While an implementation may not recognize all CSS properties within a CSS declaration block, it is expected to provide access to all specified properties in the style sheet through the CSSStyleDeclaration interface

因此,作为我之前回答的更新,我推测 IE9 错误地解释了规范 - 在 DOM 解析期间使用 CSSOM return null 实现(或类似的东西),而不是预期的DOM 实现。

这解释了为什么您会在其他浏览器中获得预期的结果。

关于javascript - 如何在 IE9 剥离之前获取样式属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28796112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com