簡體   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