2017-09-27 2 views
0

J'ai mis en place un simple script de chargement de page AJAX sur mon site et jusqu'à présent tout fonctionne, sauf pour les caractères Unicode dans le <title> se fouté lors du chargement du nouveau contenu.jQuery .load() Messing avec des caractères Unicode

Ma configuration jQuery ressemble donc:

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

Mon <title> ont des traits en eux et ils finissent comme &#8211; lorsque les titres de page sont chargés. Je suis sous l'impression que cela doit faire quelque chose avec jQuery et HTML en utilisant un encodage différent, mais je ne suis pas sûr de savoir comment résoudre le problème.

Répondre

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

Lorsque j'ajoute '.text()' il ne tire pas les titres du tout. Ce code fonctionne-t-il pour vous? – tylorreimer

0

j'ai fini à l'aide document.title = $(html).filter('title').text(); au lieu de document.title = html.match(/<title>(.*?)<\/title>/)[1].trim(); et il semblait faire l'affaire dans la résolution de la question du caractère unicode.