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

至今…

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

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

仅供参考: –

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

提前致谢。

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

UPDATE

尝试:

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

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

做这个 :

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

我们希望产生一种效果,当有人访问我们的网站时,应该看到单个页面的标题,但是当你离开时,你可以看到“我们仍然会想念你…… :)”使用下面的代码:

     

你可以在这里看到这个: http : //www.solutelabs.com

试试以下代码:

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