Javascript 加载(或$.ajax)以获取和设置页面标题?
到目前为止Javascript 加载(或$.ajax)以获取和设置页面标题?,javascript,ajax,jquery,Javascript,Ajax,Jquery,到目前为止 $('#container').load(hash + ' #page','', function() { $('#container').fadeIn('fast'); document.title = $('#title').load(hash + ' #title').text(); }); …不起作用。 有没有更好/正确的方法 供参考:- 我在标签中添加了ID#title(所有页面/它是一个PHP模板) 容器已预先褪色(不太重要) 提前感谢。问
$('#container').load(hash + ' #page','', function() {
$('#container').fadeIn('fast');
document.title = $('#title').load(hash + ' #title').text();
});
…不起作用。
有没有更好/正确的方法
供参考:-
- 我在标签中添加了ID#title(所有页面/它是一个PHP模板)
- 容器已预先褪色(不太重要)
提前感谢。问题是,在您分配给
document.title
时,$('#title').load(hash+'#title').text()可能尚未完成。尝试在该.load
的回调中设置新的文档.title
更新
尝试:
我也有同样的要求,在ajax加载后更新页面标题,这就是我所使用的–一个请求,无需在HTML中设置特殊属性:
var contentWrap = $('#content-wrap'),
contentId = '#content';
$.ajax({
url: hash.replace(/^#!\//, '') + '.html',
success: function(text) {
var oldContent = contentWrap.find(contentId),
newPage = $(text),
newContent = newPage.find(contentId);
oldContent.remove();
contentWrap.append(newContent);
// Set New Title
document.title = newPage.filter('title').text();
}
});
这样做:
$('#容器')。加载(哈希+'#页','',函数(结果){
$('容器').fadeIn('快速');
document.title=$(结果).find('#title').text();
});代码>请尝试以下代码:
.**filter**('title').text()
$('#container').load(hash + ' #page','', function(result) {
$('#container').fadeIn('fast');
document.title = $(result).filter('title').text();
});
我们希望有这样一种效果,当有人访问我们的网站时,可以看到单独页面的标题,但当您离开时,可以使用以下代码看到“我们仍然会想念您…”:
<!-- Active Navigation Script -->
<script>
var url = window.location;
$('ul.nav a[href="'+ url +'"]').parent().addClass('active');
$('ul.nav a').filter(function() {
return this.href == url;
}).parent().addClass('active');
</script>
<!-- Tab Title change Script -->
<script>
$(function() {
// Get page title
var pageTitle = $("title").text();
// Change page title on blur
$(window).blur(function() {
$("title").text("We'll still miss you... :)");
});
// Change page title back on focus
$(window).focus(function() {
$("title").text(pageTitle);
});
});
</script>
var url=window.location;
$('ul.nav a[href=“”+url+“]')。parent().addClass('active');
$('ul.nav a').filter(函数(){
返回this.href==url;
}).parent().addClass('active');
$(函数(){
//获取页面标题
var pageTitle=$(“title”).text();
//在模糊上更改页面标题
$(窗口).blur(函数(){
$(“title”).text(“我们仍然会想念你…:)”;
});
//将页面标题更改回焦点
$(窗口).focus(函数(){
$(“标题”)。文本(页面标题);
});
});
您可以在这里看到这一点:谢谢Nikki,这非常有效!谢谢你的解释;这个标题最初只是短暂出现,后来就消失了。我想知道是否有办法进行“一次呼叫/加载”,获取#页面内容和#标题文本?我(如饥似渴地)尝试了以下方法(不太好):-$('ajax,'title').load(hash+'page,'title','',function(){document.title=$('title').text();$('ajax').fadeIn('fast');$('loading').remove());多打一个电话不会有什么坏处;-)。再次感谢。如果你真的想把它简化为一个调用(以防你有更多的部分要检索,而不仅仅是#title
和#page
),也许你可以将页面预加载到一个隐藏的div
,然后从那里读取。我决定在页面主标题标签(例如新闻)中添加一个“title”属性,然后从那里读取。有点黑,但很体面。再次感谢!对任何感兴趣的人来说,我在每个页面上使用HTML5数据属性“数据标题”。更多信息:-不需要隐藏div(如果存在多个并发请求,则可能不可靠),只需使用jQuery.get()
。在success
方法中,可以使用jQuery()
包装data
参数,并使用find()
方法从单个响应中提取任意元素。谢谢格里兹利;我肯定会使用它(例如,普通的XHTML站点,避免使用rev属性)。它的工作方式很有魅力。非常奇怪的是,$(text.find('title')
没有返回任何内容,不是吗?这是一个非常古老的问题,写在6年前。原始海报不太可能仍然存在此问题;因此,在制定一个只对其他有类似问题的人有用的答案时,您应该花费额外的时间。在这种情况下,仅仅发布代码而不做任何解释并不是一个好的答案,尤其是与公认的答案相比。
<!-- Active Navigation Script -->
<script>
var url = window.location;
$('ul.nav a[href="'+ url +'"]').parent().addClass('active');
$('ul.nav a').filter(function() {
return this.href == url;
}).parent().addClass('active');
</script>
<!-- Tab Title change Script -->
<script>
$(function() {
// Get page title
var pageTitle = $("title").text();
// Change page title on blur
$(window).blur(function() {
$("title").text("We'll still miss you... :)");
});
// Change page title back on focus
$(window).focus(function() {
$("title").text(pageTitle);
});
});
</script>