使用Ajax更改页面标题返回'undefined'

时间:2015-07-18 08:23:35

标签: ajax web load title

我需要获取title变量的href

  var href = $(this).attr('href');
    $(this).click(function(event) {
        event.preventDefault();
        $.ajax({
            url: href,
            success:function(response) {
                document.title = $(response).find('title').html();
                window.history.pushState('', '', href);
            },
        })
    })

Сhangingurl工作正常,但页面title显示undefined

1 个答案:

答案 0 :(得分:0)

在您的代码中,您希望response采用可接受的格式作为jQuery函数的输入(包含选择器表达式的字符串)。虽然response只能是XML,JSON,HTML或脚本。根据{{​​3}},如果未指定dataType,则将执行智能猜测。在您的问题中,我们不知道AJAX返回的格式是什么。

如果您的数据以HTML格式返回,我认为您应该抓取此HTML以获取<title>标记,这将需要更多代码。

如果数据以JSON形式返回,您可以从响应中解析此数据并将其放入document.title。 (当然,应该实现将页面title服务器端添加为JSON响应的一部分的逻辑)。

无论如何,我相信$(response).find('title').html();不会有效地获得新AJAX返回内容的标题。