在一个名为Advanced Ajax Page Loader的WordPress插件的源代码中,我看到作者使用这样的代码来设置ajax成功后的页面标题:
data = data.split('<title>')[1];
titles = data.split('</title>')[0];
jQuery(document).attr('title', (jQuery("<div/>").html(titles).text()));
我尝试将最后一行替换为
jQuery(document).attr('title', titles);
并且该插件也有效。
所以我的问题是:为什么他使用 (jQuery("<div/>").html(titles).text())
而不是简单地应用 titles
变量?
(jQuery("<div/>")
是什么意思?到底是什么意思?
谢谢。
最佳答案
jQuery("<div/>")
创建一个 div 元素,请参阅 http://api.jquery.com/jquery/#jQuery2 。这里它用于清理 titles
变种。
jQuery("<div/>").html(titles).text()
创建一个空 div ( jQuery("<div/>")
),将内容设置为 titles
( .html(titles)
) 并读取此 div 的文本 ( .text()
)。 HTML 标签被读取为文本,因此不能将 HTML/JS 注入(inject)到文档标题中,只能注入(inject)纯文本。这是该脚本的一项安全功能。
关于javascript - 使用 jQuery 设置页面标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21580306/