2017-09-27 3 views
0

Ich habe ein einfaches AJAX-Skript zum Laden von Seiten auf meiner Website eingerichtet und bis jetzt funktioniert alles außer den Unicode-Zeichen in <title> beim Laden des neuen Inhalts.jQuery .load() mit Unicode-Zeichen

Meine jQuery Setup sieht so aus:

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; 
    }); 
}); 

Meine <title> haben Striche in ihnen und sie am Ende als &#8211;, wenn die Seitentitel geladen werden. Ich habe den Eindruck, dass dies etwas mit jQuery und HTML mit unterschiedlichen Kodierungen zu tun hat, bin mir aber nicht sicher, wie ich das Problem lösen soll.

Antwort

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; 
    }); 
}); 
+0

Wenn ich '.text()' addiere, zieht es die Titel überhaupt nicht. Funktioniert dieser Code für Sie? – tylorreimer

0

ich landete mit document.title = $(html).filter('title').text(); statt document.title = html.match(/<title>(.*?)<\/title>/)[1].trim(); und es schien, den Trick bei der Lösung des Unicode-Zeichen Problem zu tun.