作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 <iframe>
谁的src
指向纯文本文件(不是 HTML)。文本被加载并显示在屏幕上,但似乎对 JavaScript 隐藏了。
在其他浏览器中,iframe.contentWindow.document.body.innerText
足以为您获取它,但在这种情况下 IE 会返回一个空字符串。
有没有办法让 IE 可以在不涉及服务器的情况下访问文件中的文本?
最佳答案
您可以使用 XmlHttpRequest 读取此文件。如果浏览器可以读取它,那么 XmlHttpRequest 也可以。
/* Read a file using xmlhttprequest
If the HTML file with your javascript app has been saved to disk,
this is an easy way to read in a data file. Writing out is
more complicated and requires either an ActiveX object (IE)
or XPCOM (Mozilla).
fname - relative path to the file
callback - function to call with file text
*/
function readFileHttp(fname, callback) {
xmlhttp = getXmlHttp();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState==4) {
callback(xmlhttp.responseText);
}
}
xmlhttp.open("GET", fname, true);
xmlhttp.send(null);
}
/*
Return a cross-browser xmlhttp request object
*/
function getXmlHttp() {
if (window.XMLHttpRequest) {
xmlhttp=new XMLHttpRequest();
} else if (window.ActiveXObject) {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlhttp == null) {
alert("Your browser does not support XMLHTTP.");
}
return xmlhttp;
}
使用fname
参数的iframe.src
属性调用readFileHttp(fname, callback)
。回调参数应该是一个函数,可以对结果执行任何操作。
像这样:
var myIFrame = document.getElementById('iframeIdGoesHere');
readFileHttp(myIFrame.src, function(result){
//process the result
});
关于javascript - 如何在 IE 上访问 <iframe> 中加载的纯文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3554288/
我是一名优秀的程序员,十分优秀!