为什么HTML符号▶不工作在document.title
why does the HTML symbol for ▶ not work in document.title
我尝试在设置document.title
时使用►
,但它没有渲染播放符号,只是显示相同的字符。
我能够粘贴▶直接到代码,这是有效的。我只是好奇为什么第一种方法不行。
谢谢!
►
是HTML实体引用,而document.title
不包含HTML;它包含纯文本。例如,如果我将document.title
设置为<strong>Hello</strong> <em>world</em>
,它将逐字显示,而不是显示Helloworld。HTML的其他部分也是如此,包括实体引用。
title
标记中包含实体引用。它们将在解析页面时被解释。但是,document.title
在解析文本并替换所有实体之后才访问文本。document.title
将访问title
标记的文本,而不是最初用于创建它的HTML。同样,设置document.title
也不会自动解释其中的任何HTML。
如果浏览器出于某种原因将您的页面解释为与实际不同的字符编码,则从字面上包含字符可能会导致问题。HTML实体在HTML中可以防止这种情况,但是在JavaScript中也有一种方法可以转义它们。特别是,您可以包含►在JavaScript中使用字符串转义'u25ba
(965810转换成16进制为26BA16)
另一个答案是正确的,因为HTML文档的标题是纯文本,不能包含标记。
但是,为了清楚起见,您可以在HTML源中使用►
(即<title>►</title>
)。解析器将实体转换为存储在DOM中的字符串中的适当字符。
当你设置document.title
时,你遇到了一个问题。HTML解析器不适用于JavaScript,即使脚本内联在HTML文档中也是如此。您的脚本只是将文档的纯文本标题设置为文字& -pound-9658分号,因为该字符序列在脚本中没有特殊含义。
如果要转义脚本源中的字符,请使用JavaScript转义序列。JavaScript中的Unicode转义序列需要Unicode码点的十六进制表示,而您的实体正在使用十进制表示(9568)。转换成十六进制,我们得到25BA:
document.title = ''u25ba Playing';
相关文章:
- 正在寻找比$(document).ready慢的$(window).load的替代方案
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- 如何用更合适的内容替换document.write
- document.styleSheets不返回任何内容
- jQuery document.ready not working
- $(document).height()在刷新时随机化值(Safari 5.1.10)
- reactjs this.refs vs document.getElementById
- 如何通过adf中的document.getElementById获取inputText字段值
- window.opener.document在ie中不起作用
- contentWindow.document.body is null
- document.applet.method在Mounatin Lion上抛出safari 6+JDK7异常
- document.getElementById(“st”).click();不起作用
- document.title函数可以't设置它与php一起工作
- 如果 document.title 不存在,如何获取页面标题名称
- 未捕获的类型错误:document.title 不是一个函数,第 31 行
- 使 document.title 对于 Javascript 来说是不可触碰的
- Safari无法呈现$window.document.title
- 为什么HTML符号▶不工作在document.title
- 如何使用外部Javascript使用onclick事件来更改document.title
- 阻止移动版jQuery设置document.title