繁体   English   中英

我怎样才能捕获:IE8中的内容之后?

[英]How can I capture :after content in IE8?

我申请一个:after伪元素主体显示我的媒体查询断点的名字,像这样:

body::after {
  content: 'medium';
  display: none;
}

这样做的原因可以在这里找到: http//adactio.com/journal/5429/

我想得到的内容值: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 {
  content: 'medium';
  display: none;
}

在使用两个之前,内容甚至没有出现在IE8中,所以它没有任何回报。 不幸的是我仍然无法让IE8返回内容。

我在尝试这个:

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

我什么也没得到,但如果我将'content'改为'backgroundColor'之类'backgroundColor'其他属性,它会发出警告。 所以我想虽然msdn将内容列为currentStyle的可用属性之一http://msdn.microsoft.com/en-us/library/ie/ms535231%28v=vs.85%29.aspx但它确实如此实际上并没有归还它,除非我做错了什么。

经过大量的尝试,我得出的结论是,这是不可能的。 但幸运的是,我找到了一个js脚本,它正在实现我所追求的目标。

https://github.com/JoshBarr/js-media-queries

除了使用Jeremy Keith将断点标签放在正文中的技术之后:他们将断点标签放在html元素的font-family中。 这支持ie8和某些情况下android无法返回内容之后的内容。

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

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

body:after
{
    content: 'medium';
    -ms-content: 'medium';
}

为方便起见,我把它称为“-ms-content”,现在你的IE的JavaScript代码应该是:

document.body.currentStyle["-ms-content"] // RETURNS => 'medium'

您必须使用括号访问“您自己的属性”:currentStyle [{String}]否则您将获得一个空字符串

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM