问题描述
我正在尝试使用Javascript获取< noscript>
标记的内容。我成功地在FF,Chrome,Opera甚至IE6中获得了它,但在IE7上失败了(还没有尝试过IE8 +)。
I'm trying to get the content of a <noscript>
tag using Javascript. I succesfully managed to get it in FF, Chrome, Opera and even IE6 but fail on IE7 (haven't tried IE8+ yet).
基本上,这是减少的代码版本:
Basically, here's the reduced code version :
<noscript>Lorem ipsum</noscript>
<script>
var noscript = document.getElementsByTagName('noscript')[0];
noscript.textContent; // undefined
noscript.innerHTML; // empty string
noscript.childNodes.length; // 0
</script>
我尝试在里面添加元素并定位它们,但没有成功。我试图包装一个父元素并获取其 .innerHTML
,但是< noscript>
标签之间的任何内容都被丢弃。
I tried adding element inside and targeting them, no success. I tried to wrap in a parent element and getting its .innerHTML
, but anything between <noscript>
tags is discarded.
注意:我正在构建一个lazyloader脚本,< noscript>
元素正是我需要的(< img>
src
< noscript> $ c $内的属性c>标签不是由浏览器提取的。)
Note : I'm building a lazyloader script and the <noscript>
element is just what I need (<img>
src
attributes inside a <noscript>
tag are not fetched by the browser.)
推荐答案
在IE 7和8中,根本不可能检索到的内容一个< noscript>
元素。 HTML中的< noscript>
和< / noscript>
标记之间的任何内容都不会反映在DOM中在IE中,元素没有子元素, innerHTML
和 innerText
是空字符串。
In IE 7 and 8, it's simply impossible to retrieve the contents of a <noscript>
element. Any content between the <noscript>
and </noscript>
tags in the HTML is not reflected in the DOM in IE, the element has no children and innerHTML
and innerText
are empty strings.
在IE 6中,情况很奇怪:与IE 7一样,< noscript>
元素没有子节点,但其内容反映出来在 innerHTML
和 outerHTML
(但不是 innerText
)属性元素。
In IE 6, the situation is curious: in common with IE 7, the <noscript>
element has no child nodes but its contents are reflected in the innerHTML
and outerHTML
(but not innerText
) properties of the element.
所有这一切都是如此,IE中你唯一的选择就是把内容放在< noscript> $中c $ c>替换其他元素中的元素。要模拟
< noscript>
元素的行为,您可以将内容放在一个立即被JavaScript隐藏的元素中(启用脚本时):
All this being the case, your only option in IE is to put the content in your <noscript>
element inside some other element instead. To emulate the behaviour of a <noscript>
element, you could put the content in an element that is immediately hidden by JavaScript (when script is enabled):
<div id="noscript">Lorem ipsum</div>
<script type="text/javascript">
document.getElementById("noscript").style.display = "none";
</script>
这篇关于如何获取< noscript>的内容在IE7中的Javascript?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!