Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery:如何在.ready()期间更改文档标题?_Javascript_Jquery_Ruby On Rails - Fatal编程技术网

Javascript jQuery:如何在.ready()期间更改文档标题?

Javascript jQuery:如何在.ready()期间更改文档标题?,javascript,jquery,ruby-on-rails,Javascript,Jquery,Ruby On Rails,我在RubyonRails中使用了一些嵌套的布局,在其中一个布局中,我需要从div中读取一个字符串,并将其设置为文档的标题。设置文档标题的正确方法(如果有)是什么 <script type="text/javascript"> $(document).ready(function() { // ??? }); </script> $(文档).ready(函数(){ // ??? }); 像这样: $(document).ready(function ()

我在RubyonRails中使用了一些嵌套的布局,在其中一个布局中,我需要从div中读取一个字符串,并将其设置为文档的标题。设置文档标题的正确方法(如果有)是什么

<script type="text/javascript">
$(document).ready(function() {

    // ???

});
</script>

$(文档).ready(函数(){
// ???
});
像这样:

$(document).ready(function ()
{
    document.title = "Hello World!";
});
如果您希望您的站点被搜索引擎正确索引,请确保设置默认标题

小贴士:

$(function ()
{
    // this is a shorthand for the whole document-ready thing
    // In my opinion, it's more readable 
});

$(文档).ready(函数(){
$(this.attr(“title”、“sometitle”);
});

以下内容应该可以使用,但与SEO不兼容。最好将标题放在标题标签中

<script type="text/javascript">

    $(document).ready(function() {
        document.title = 'blah';
    });

</script>

$(文档).ready(函数(){
document.title='blah';
});
我在RubyonRails中使用了一些嵌套的布局,在其中一个布局中,我需要从div中读取一个字符串,并将其设置为文档的标题

正确的方法是在服务器端

在您的布局中,在某一点上会有一些代码将文本放入div中。使此代码也设置一些实例变量,例如
@page\u title
,然后在外部布局中让它执行

不要使用
$('title')。text('hi')
,因为IE不支持它


最好使用
document.title='newtitle'

这在所有浏览器中都可以正常工作

$(document).attr("title", "New Title");

也适用于IE

如果您有一个服务器端脚本get_title.php,该脚本与当前标题会话相呼应,那么在jQuery中也可以正常工作:

$.get('get_title.php',function(*respons*){
    title=*respons* + 'whatever you want'   
    $(document).attr('title',title)
})

document.title对我不起作用

下面是使用JQuery的另一种方法

$('html head').find('title').text("My New Page Title");

你应该把速记作为一个新的“问题”来发布。有用!我不太明白你的意思,MDCore。Jeff建议你使用stackoverflow来获取那些可能放在博客上的技术技巧。我建议把这个技巧作为一个新问题发布,你自己回答。javascript生成的HTML不会与SEO不兼容吗?我很确定googlebot不会执行javascript…我读到有一些方法可以告诉googlebot当你的页面是用Ajax制作的时候应该读什么。。。正在用谷歌搜索。@trusktr:我想你是在说这篇谷歌文章:。但这与这种问题无关,所以猎户座爱德华兹是对的。这只是一种让Google通过HTML快照和一些服务器端修改来读取通常使用AJAX生成的内容的方法。对我来说,在FF 29.0.1中不起作用,但下面描述的解决方案是有效的:@OrionEdwards Now,五年多之后,在我看来,使用ajax请求设置标题是非常浪费的。OP专门请求了客户端问题的jQuery解决方案。通过ajax设置标题非常有用,因为它可以帮助用户在不同页面上识别当前浏览器选项卡。是的,实际上,您不能使用
$('title')。text(…)
因为为什么不
文档.标题
?对于我来说(FF 29.0.1),如果根本没有设置
,甚至是
$('html head')。添加('override default title'))
这种SEO友好模式不起作用吗?这只是对那些想知道为什么不设置标题标签serverside的人的一种解释:有时页面生成时内容和操作混合在一起。也就是说,您可能首先有一个incude文件,它构成了标题,然后从数据库中提取内容,例如客户名称。这意味着在发送标题时,客户名称未知。这是一种草率的编码,它没有将业务逻辑和表示分离,首先获取所有数据,然后显示数据,但有时这就是您所拥有的。老板:“只要把客户名放在标题“你”中,我就必须重构所有代码。”@SearchForKnowledge check
$('html head').find('title').text("My New Page Title");