获取和设置页面标题的jQuery .load(或$ .ajax)?

时间:2010-01-22 05:19:16

标签: javascript ajax jquery

到目前为止......

$('#container').load(hash + ' #page','', function() { 
    $('#container').fadeIn('fast');
    document.title = $('#title').load(hash + ' #title').text();
    });

......不起作用。 有没有更好/正确的方法来做到这一点?

仅供参考: -

  • 我添加了ID #title标签(所有页面/它都是PHP模板)。
  • 容器是.fade(ed)预先输出(不太重要)

提前致谢。

5 个答案:

答案 0 :(得分:9)

问题是,在您分配到document.title时,$('#title').load(hash + ' #title').text()可能还没有完成。尝试在document.title的回调中设置新的.load

<强>更新

尝试:

$('#container').load(hash + ' #page','', function() { 
    $('#container').fadeIn('fast');
    $('#title').load(hash + ' #title', '', function(data) {
        document.title = $(this).text();
        });
    });

答案 1 :(得分:6)

我有同样的要求,在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();
  }
});

答案 2 :(得分:0)

这样做:

$('#container').load(hash + ' #page','', function(result) { 
  $('#container').fadeIn('fast');
  document.title = $(result).find('#title').text();
});

:)

答案 3 :(得分:0)

尝试以下代码:

>>> match = ('b', 'c')  # together at `a[0]`
>>> any(match == b[i:i+len(match)] for b in a for i in range(len(b[:-len(match)+1])))
True  # since ('b', 'c') are present together at `a[0]`

答案 4 :(得分:0)

我们希望产生一种效果,当有人访问我们的网站时,应该会看到单独的页面标题,但是当您离开时,您可以看到&#34;我们仍然会想念您。 .. :))&#34;使用以下代码:

<!-- 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>

您可以在此处查看此操作:http://www.solutelabs.com