Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在IE8中捕获:内容之后?_Javascript_Css_Internet Explorer 8 - Fatal编程技术网

Javascript 如何在IE8中捕获:内容之后?

Javascript 如何在IE8中捕获:内容之后?,javascript,css,internet-explorer-8,Javascript,Css,Internet Explorer 8,我正在将一个:在伪元素之后应用到正文,显示我的媒体查询断点的名称,如下所示: body::after{ 内容:“中等”; 显示:无; } 这样做的原因可以在这里找到: 我想在IE8中使用javascript获得:after的内容值 这就是我在其他浏览器上的做法: var breakpoint = window.getComputedStyle(document.body, ':after').getPropertyValue('content'); 但是IE8不支持getComputedSt

我正在将一个
:在
伪元素之后应用到正文,显示我的媒体查询断点的名称,如下所示:

body::after{
内容:“中等”;
显示:无;
}
这样做的原因可以在这里找到:

我想在IE8中使用javascript获得
:after
的内容值

这就是我在其他浏览器上的做法:

var breakpoint = window.getComputedStyle(document.body, ':after').getPropertyValue('content');
但是IE8不支持
getComputedStyle()
,我知道它支持
currentStyle
,但经过一点尝试后,我无法正确使用它

这是我尝试过但没有成功的事情:

var breakpoint = document.body.currentStyle.getPropertyValue('content');
有人知道怎么做吗

编辑: 在BoltClock的注释之后,我现在将css更改为(一个分号):

body:after{
内容:“中等”;
显示:无;
}
在使用两个之前,内容甚至没有出现在IE8中,因此它将没有任何可返回的内容。不幸的是,我仍然无法让IE8返回内容

我正在尝试:

if (style = document.body.currentStyle) {
  for (var prop in style) {
    if (prop === 'content') {
      alert(prop);
    }
  }
}

我什么也没有得到,但如果我将
'content'
更改为其他属性,如
'backgroundColor'
,它会发出警报。因此,我认为即使msdn将内容列为
currentStyle
的可用属性之一,它实际上也不会返回内容,除非我做了其他错误的事情。

经过大量尝试,我得出结论,这是不可能的。但谢天谢地,我找到了一个js脚本,它正是我想要的

以及使用Jeremy Keith在主体中放置断点标签的技术:在html元素上放置字体系列中的断点标签之后。这支持ie8以及android无法返回:after内容的某些情况。

从IE7到IE11,您可以“创建自己的CSS属性”,只需使用currentStyle对象即可访问它们

然后一个解决方案是创建一个“假内容属性”

为了方便起见,我将其命名为“-ms content”,现在IE的JavaScript代码应该是:

document.body.currentStyle["-ms-content"] // RETURNS => 'medium'
您必须使用方括号访问“您自己的属性”:currentStyle[{String}],否则将得到一个空字符串


IE8也不支持
::after
的双冒号版本。如果您需要支持IE8,请使用
:after
。谢谢,我希望这就是我无法获取:after内容值的原因,但遗憾的是,我仍然无法让IE8返回任何内容。可能是因为
:after{}
不算作元素自己的样式。您是否有可能使用类似于
document.styleSheets[0].cssRules
?恐怕我也无法使用document.styleSheets。您是否接受jQuery的解决方案?
document.body.currentStyle["-ms-content"] // RETURNS => 'medium'