7

在开发我的网站时,我在 FF 中收到此警告。我找不到任何关于它的真实信息以及如何解决这个问题。

the character encoding of a framed document was not declared. The document may appear different if viewed without the document framing it.


...e)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f....

jquery....min.js(第 4 行)

4

2 回答 2

12

你需要把

<meta http-equiv="Content-type" content="text/html;charset=UTF-8">

在 iframe 或您正在使用的任何字符集编码的头部。

于 2012-12-07T04:30:18.333 回答
1

在您的情况下,看起来您正在提供一个 javascript 文件。为了设置字符编码,您必须Content-Type在提供 javascript 文件时在 HTTP 标头中设置它。

例如:

Content-Type: application/javascript; charset=utf-8

但是,如果您使用<iframe>元素来引用 javascript,那么您做错了。

你应该只使用 an<iframe>来显示一些东西,比如 HTML、文本、SVG、PDF 等。

对于 HTML 文档,您可以在文件中使用tag和 tag 上属性设置.html字符编码。请注意,后者已被弃用,所有现代浏览器都将读取引用该脚本的文档的标签。charset<meta><script><meta>

例子

iframed.html

<head>
  <meta http-equiv="Content-type" content="text/html;charset=UTF-8">
  <script src="jquery....min.js" charset="utf-8"></script>
  <!-- note: setting charset on a <script> tag is deprecated -->
</head>

索引.html

<body>
  <iframe src="iframed.html">
</body>

如果您可以访问您的 Web 服务器,那么您可以将字符编码设置为响应的一部分,Content-Type而无需在文档中指定它。

  • HTML:Content-Type: text/html; charset=utf-8
  • JS:Content-Type: application/javascript; charset=utf-8
  • JSON:Content-Type: application/json; charset=utf-8
  • 文本:Content-Type: text/plain; charset=utf-8

nodejs 中,您使用对象setHeader上的方法Response

response.setHeader ('Content-Type', 'text/html; charset=utf-8')

开发工具

您可以使用浏览器的 DevTools 来检查网络请求并检查Content-Typeheader 的值。请参阅下面的屏幕截图。

DevTools 中 Network 选项卡的屏幕截图,显示 jQuery 的 Content-Type 标头

于 2022-01-26T12:58:23.487 回答