JavaScript读取HTML结束标签后的注释

7

我知道在'html'标签关闭后不应该再添加任何内容。告诉SharePoint这件事...

[...]
</body>
</html><!-- Rendered using cache profile:Public Internet (Purely Anonymous) at: 2013-06-06T12:57:10 -->

这是SharePoint输出缓存调试信息的样子。我希望这个隐藏的注释在每个页面上都可见。切换到源视图并到文件末尾让我感到疲惫。 为了避免重复造轮子,我认为最明智的选择是将一段javascript代码添加到我的主页面中,将注释复制到我选择的位置(页面内)。 有没有任何想法通过javascript获取评论?jquery可以使用。

1
以下链接可能有所帮助:http://www.bennadel.com/blog/1563-jQuery-Comments-Plug-in-To-Access-HTML-Comments-For-DOM-Templating.htm。 - mrida
+1 给 @mrida,但评论在结束的 HTML 标签之后,可能会被删除?不确定,但是,如果他可以通过 jQuery 获取原始源代码,那么使用简单的正则表达式应该是可能的。 - Blazes
2个回答

3
您可以获取Comment对象的nodeValue并将其附加到Body元素中:
$(document).ready(function() {
   var comment = $('html').prop('nextSibling').nodeValue;
   $('<div/>').html(comment).appendTo('body');
});

http://jsbin.com/arodiz/2/edit


1
获取下一个兄弟节点的奇怪方式... :) - Andreas Louv
5
有趣,“NULL”正在与“undefined”交谈。 ;) - Vitor Canova

2

只需使用document.lastChild.nodeValue即可解决问题。

(假设您在DOM准备就绪后运行它)

编辑

我修改了undefined的答案中的代码 :)

$(function(){
    $('body').append(document.lastChild.nodeValue);
});

http://jsbin.com/arodiz/3/edit


1
@VitorCanova 真是太糟糕了 :/ 即使尝试 undefined 的 jQuery 解决方案,我仍然无法在 IE8 中让它工作。 - xec
OP只是想为了调试目的查看注释,它不应该跨浏览器。 - Ram
@xec 是的。希望IE8随着Windows XP在明年一起消逝。 - Vitor Canova
谢谢。与此同时,我也有一个可行的解决方案,但相比你的代码长度要多10倍 :) - lapsus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接