我有一个页面,其中有两个标题标签(这是因为在运行时我们在另一个页面中包含一个页面)。目前我在浏览器中看到第一个标题标签值,但我想显示第二个标题标签的值。这是我的代码,这在Firefox和Chrome中运行良好,但在IE7中运行不正常。有什么建议吗?
var titleName;
$(document).find('title').each(function(){
titleName = $(this).text();
});
$(document).attr("title", titleName);
答案 0 :(得分:1)
你不需要jQuery。它应该在IE(以及所有其他浏览器)中使用vanilla JavaScript。
document.title = 'new title';
由于how IE handles the <title>
element,您需要在获取第二个值时给它一些额外的帮助。
var titleName;
// find all title elements using plain ol' javascript
var titles = document.getElementsByTagName('title');
// iterate over array of titles
$.each(titles, function(i, title) {
// if there are childNodes, then we know we're not in IE
if (!!title.childNodes.length) {
titleName = title.firstChild.data;
}
// in IE, we can read the title elements innerHTML, but we can't set it
else if (title.innterHTML) {
titleName = title.innerHTML;
}
});
// finally, set the document title
document.title = titleName;
这里的主要问题是IE中的title元素没有任何子节点,因此$(this).text()将不起作用。
如果上述代码适合您,请告诉我。
答案 1 :(得分:1)
您无法获得第二个标题的值,因为IE不会将其包含在DOM中。