在我的html文件中,我将其作为
<script src='http://otherdomain/file.js' ></script>
当我运行我的网页时,其他javascript使用docuemnt.write
命令创建了一些html内容。
如何使用html页面上的javascript动态读取动态html?
有可能吗?
答案 0 :(得分:3)
您可以覆盖document.write
只是存储输入而不是写入。完成后,将其恢复为正常行为:
<script>
var outputBuffer = "", old = document.write;
document.write = function(buffer) {
outputBuffer += buffer; // store the contents for later use
};
</script>
<script src="http://otherdomain.com/file.js"></script>
<script>
document.write = old; // restore document.write to normal behavior
document.write(outputBuffer); // if you want to write it out
</script>
答案 1 :(得分:2)
如果您知道其他JavaScript编写其内容的位置,则很容易阅读。例如,如果所有内容都写入以下div-container:
<div id="updatable"></div>
然后您可以通过调用document.getElementById("updatable").childNodes
或document.getElementById("updatable").innerHTML
答案 2 :(得分:1)
如果您只需要在构建的页面上使用实际元素,那么您可以使用javascript来修改DOM。 (W3Schools有tutorial)
例如,您可以获取对标识为"myID"
的标记的引用,如下所示:
myTag = document.getElementById("myID");
myTag.style = <new style>;
etc.
如果您想要新页面的原始HTML源代码,可以拨打innerHTML
:
myHTML = document.documentElement.innerHTML;
答案 3 :(得分:0)
如果您不需要适用于任何浏览器但仅用于分析的解决方案,您可能会从突变事件中获得所需内容。
http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-eventgroupings-mutationevents
查看DOMNodeInserted事件。当您在树中添加元素时,在顶层文档中注册处理程序的时间比在被调用时要多。对于您可能想要的每个操作,都有适合的事件类型。我不确定它支持的程度,但可能值得尝试
答案 4 :(得分:0)
如果您只是想进行调试,请使用IE Web开发人员工具或firebug查看生成的源代码。 :)