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>