当前位置:  开发笔记 > 编程语言 > 正文

使用Javascript访问<noscript>的内容

如何解决《使用Javascript访问<noscript>的内容》经验,为你挑选了1个好方法。

如果启用了脚本,则noscript元素被定义为仅包含文本 - 尽管它必须是可解析的文本,但对内容有一些限制.考虑到这一点,您应该能够提取文本,解析它,然后找到您想要的元素.以下是一个基本的例子:

var nos = document.getElementsByTagName("noscript")[0]; 
// in some browsers, contents of noscript hang around in one form or another
var nosHtml = nos.textContent||nos.innerHTML; 

if ( nosHtml )
{
  var temp = document.createElement("div");
  temp.innerHTML = nosHtml;

  // lazy man's query library: add it, find it, remove it
  document.body.appendChild(temp);
  var ex = document.getElementById("example");
  document.body.removeChild(temp);

  alert(ex.innerHTML);
}

请注意,当我最初撰写此答案时,上述操作在Google Chrome中失败了; 这些天对noscript内容的访问似乎有点得到了更好的支持,但它仍然让我感到震惊,因为它可能比其他元素更容易出现错误 - 如果你有其他选择,我会避免它.



1> Shog9..:

如果启用了脚本,则noscript元素被定义为仅包含文本 - 尽管它必须是可解析的文本,但对内容有一些限制.考虑到这一点,您应该能够提取文本,解析它,然后找到您想要的元素.以下是一个基本的例子:

var nos = document.getElementsByTagName("noscript")[0]; 
// in some browsers, contents of noscript hang around in one form or another
var nosHtml = nos.textContent||nos.innerHTML; 

if ( nosHtml )
{
  var temp = document.createElement("div");
  temp.innerHTML = nosHtml;

  // lazy man's query library: add it, find it, remove it
  document.body.appendChild(temp);
  var ex = document.getElementById("example");
  document.body.removeChild(temp);

  alert(ex.innerHTML);
}

请注意,当我最初撰写此答案时,上述操作在Google Chrome中失败了; 这些天对noscript内容的访问似乎有点得到了更好的支持,但它仍然让我感到震惊,因为它可能比其他元素更容易出现错误 - 如果你有其他选择,我会避免它.


用jQuery尝试$($("noscript").text()).
推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有