在网页中读取TXT文件iframe时,如何阻止浏览器对<、>、&进行编码?
How to stop browser from encoding <, >, and & when reading a TXT file iframe in Web page?
我注意到浏览器在读取 [= 的内部 HTML 时会将左括号 <、右括号 > 和符号 & 编码为各自的代码 (</>/&) 28=]TXT-文件源 iframe。我该如何阻止这种情况发生?内部HTML 也将被包装在
标签中。
例如,假设我在 TXT(不是 HTML)文件中有以下内容:
<div>
Hello world! I love M&M's candy.
</div>
以下 iframe:
<iframe id="MyIframe" src="/hello.txt"></iframe>
以及以下 JavaScript:
var MyIframe = document.getElementById('MyIframe');
alert(MyIframe.contentWindow.document.innerHTML);
将弹出如下警告对话框:
<pre>
<div>Hello world! I love M&M's candy.</div>
</pre>
如何阻止 JavaScript 对 TXT 文件的内容执行此操作?我只想要文件的原始未编码内容。
我无法使用 XMLHTTPRequest。
不检索 .innerHTML
,而是检索 .textContent
。这应该 return 只有元素树中人类可读的文本,以人类可读的形式。您可以在此页面上通过检查问题中的一个 HTML 示例并在开发人员控制台中写入 [=12=].textContent
来尝试。
浏览器将您的文本文件转换为 HTML。如果您检查 https://wordpress.org/plugins/about/readme.txt 的 DOM,您会发现它是 HTML,而不仅仅是呈现它的纯文本文件。
正如其他人所建议的,您可以只检索 MyIframe.contentWindow.document.textContent
,它将解码任何 HTML 特殊字符(现在您知道浏览器会自动对其进行编码)。
我注意到浏览器在读取 [= 的内部 HTML 时会将左括号 <、右括号 > 和符号 & 编码为各自的代码 (</>/&) 28=]TXT-文件源 iframe。我该如何阻止这种情况发生?内部HTML 也将被包装在
标签中。例如,假设我在 TXT(不是 HTML)文件中有以下内容:
<div> Hello world! I love M&M's candy. </div>
以下 iframe:
<iframe id="MyIframe" src="/hello.txt"></iframe>
以及以下 JavaScript:
var MyIframe = document.getElementById('MyIframe'); alert(MyIframe.contentWindow.document.innerHTML);
将弹出如下警告对话框:
<pre> <div>Hello world! I love M&M's candy.</div> </pre>
如何阻止 JavaScript 对 TXT 文件的内容执行此操作?我只想要文件的原始未编码内容。
我无法使用 XMLHTTPRequest。
不检索 .innerHTML
,而是检索 .textContent
。这应该 return 只有元素树中人类可读的文本,以人类可读的形式。您可以在此页面上通过检查问题中的一个 HTML 示例并在开发人员控制台中写入 [=12=].textContent
来尝试。
浏览器将您的文本文件转换为 HTML。如果您检查 https://wordpress.org/plugins/about/readme.txt 的 DOM,您会发现它是 HTML,而不仅仅是呈现它的纯文本文件。
正如其他人所建议的,您可以只检索 MyIframe.contentWindow.document.textContent
,它将解码任何 HTML 特殊字符(现在您知道浏览器会自动对其进行编码)。