我已经在我的网站上设置了一个简单的AJAX页面加载脚本,到目前为止一切正常,除了加载新内容时<title>
中的Unicode字符搞砸了。
我的jQuery设置如下:
jQuery(document).ready(function ($) {
"use strict";
var main = $("main");
menuLinks.click(function () {
var href = $(this).attr("href"),
ajaxLoad = function (html) {
document.title = html.match(/<title>(.*?)<\/title>/)[1].trim();
main.fadeIn('slow');
};
history.pushState(null, null, href);
main.fadeOut('slow', function () {
main.load(href + ' main>*', ajaxLoad);
});
return false;
});
});
我的<title>
中包含破折号,当加载页面标题时,它们最终为–
。我的印象是,这必须使用不同的编码来处理jQuery和HTML,但我不确定如何解决问题。
答案 0 :(得分:0)
jQuery(document).ready(function ($) {
"use strict";
var main = $("main");
menuLinks.click(function () {
var href = $(this).attr("href"),
ajaxLoad = function (html) {
document.title = html.match(/<title>(.*?)<\/title>/)[1].text().trim();
main.fadeIn('slow');
};
history.pushState(null, null, href);
main.fadeOut('slow', function () {
main.load(href + ' main>*', ajaxLoad);
});
return false;
});
});
答案 1 :(得分:0)
我最终使用的是document.title = $(html).filter('title').text();
而不是document.title = html.match(/<title>(.*?)<\/title>/)[1].trim();
,它似乎解决了unicode字符问题。