gpt4 book ai didi

javascript - 使用 JavaScript 设置字符集元标记

转载 作者:技术小花猫 更新时间:2023-10-29 12:38:50 25 4
gpt4 key购买 nike

这里有一个错误我正试图追踪:https://github.com/OscarGodson/EpicEditor/issues/184#issuecomment-8805982

根据所有信息,它似乎是因为浏览器默认使用用户的 native 字符集(在本例中为 ISO-8859-1),而不是 UTF-8 就像在我的机器和美国的其他机器上一样。我猜想解决方法是使用 HTML 强制编码为 UTF-8 :

 <meta charset='utf-8'> 

<meta http-equiv='Content-Type' content='Type=text/html; charset=utf-8'>

但是,JS 不工作。在第一个例子中:

charsetMetaTag = self.editorIframeDocument.createElement('meta');
charsetMetaTag.charset = 'utf-8';
self.editorIframeDocument.getElementsByTagName('head')[0].appendChild(charsetMetaTag);

我刚刚取回了注入(inject) DOM 的以下内容:

<meta>

在第二个示例中,未设置 http-equiv:

charsetMetaTag = self.editorIframeDocument.createElement('meta');
charsetMetaTag['http-equiv'] = 'Content-Type';
charsetMetaTag['content'] = 'text/html; charset=utf-8';
self.editorIframeDocument.getElementsByTagName('head')[0].appendChild(charsetMetaTag);

我得到以下 HTML:

<meta content="text/html; charset=utf-8">

是的,我需要在动态创建 iframe 时动态地执行此操作。这甚至可能不是问题,但这就是它的样子。我能想到的唯一“hack”是以某种方式使用 innerHTML...

最佳答案

不能通过设置charset属性来设置charset内容属性,因为它们不能相互反射(reflect)。事实上,没有反射(reflect)字符集内容属性的属性。

http-equiv 内容属性通过httpEquiv 属性反射(reflect)出来

 charsetMetaTag['httpEquiv'] = 'Content-Type';

将正确创建元元素。

但这都不重要。字符集是由解析器建立的,因此在解析完 HTML 后在 JavaScript 中构建元元素不会对文档的字符集产生任何影响。

关于javascript - 使用 JavaScript 设置字符集元标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12560027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com