在互联网上浏览了几个小时后,我找到了几种从文件读取器获取信息的方法,但并不完全符合我的需要。
function submitfile() {
var reader = new FileReader();
reader.readAsDataURL(document.getElementById("filesubmission").files[0]);
reader.onload = function (REvent) {
document.getElementById("outputcontent").innerHTML = "<iframe width='100%' id='outputdata' scrolling='yes' onload='resizeIframe(this)' src='"+REvent.target.result+"'></iframe>";
};
}
function resizeIframe(obj) {
obj.style.height = obj.contentWindow.document.body.scrollHeight + 'px';
}
这是我在用户选择一个文件后使用的代码,我允许使用.html、.htm、.txt或.xml。然后调整Iframe的大小以匹配内容。我有该功能的工作,但我需要有一种方法,以取代在iframe中的某些值,用户提供了<input>
标记早些时候。例如,我需要能够将用户提供的文件中的"c1“替换为客户的名称,例如"John Smith”。
我更喜欢这样做的方式是通过文件本身的内容,而不是使用iframe中的源或对象中的数据。如果我可以把它放到原始文件中,在那里它可以被编辑,那么问题就解决了。
我需要能够在不使用jQuery或其他插件的情况下做到这一点,因为这是一个本地文件,应该能够作为我的客户端的工具独立工作。
发布于 2018-07-30 06:22:27
使用DOMParser解析阅读器的结果:
var doc = (new DOMParser).parseFromString(reader.result,"text/html");
或任何其他mime类型,然后根据您提到的输入更新文档中的一些节点。然后使用document.adoptNode
使用iframe的contentDocument
来采用节点。这将返回带有指向iframe的ownerDocument的节点。最后,将其附加到iframe的正文中。
https://stackoverflow.com/questions/51584956
复制相似问题