No se puede acceder al elemento de título del documento con jQuery (IE 8)
Estoy viendo este problema en Internet Explorer 8, pero no en Safari o Firefox. Hasta ahora, no he probado en otras versiones de IE.
Estoy desarrollando mi propio complemento jQuery y, para esta pregunta, lo he reducido a las dos líneas relevantes.
En IE 8, usando el código a continuación,$('title').text()
no hace nada. @docTitle
está en blanco porquetitle
está en blanco, como si el selector jQuery para<title>
, $('title')
no está trabajando. (Nuevamente, AFAIK, esto es solo en IE 8)
(function ($) {
$.fn.myPlugin = function (options) {
var title = $('title').text(),
docTitle = escape(title);
};
})(jQuery);
http: //jsfiddle.net/sparky672/YMBQ2
Sin embargo, usando el código JavaScript simple a continuación,document.title
funciona bien en todo, incluido IE 8 ...
(function ($) {
$.fn.myPlugin = function (options) {
var docTitle = escape(document.title);
};
})(jQuery);
EDITAR
No importa que este código esté dentro de un complemento.
Same resultado en IE 8 con esto ...
$(document).ready(function () {
var title = $('title').text();
alert(title);
});
Solo para aclarar, no estoy insistiendo en usar esto. De hecho, arreglé mi complemento simplemente usandodocument.title
en su lugar. @ Si inicialmente no estaba claro, solo pregunto por qué esto no funciona en IE 8.
¿Puede alguien explicarpor qu, ¿o qué estúpido error podría haber cometido aquí?
EDIT 2:
Aquí hay algunos informes de jQuery Bug sobre este problema
http: //bugs.jquery.com/ticket/702
http: //bugs.jquery.com/ticket/588
http: //bugs.jquery.com/ticket/275
Y docenas de otros informan lo mismo. La respuesta oficial es declarar,"document.title
es la única forma confiable de navegador cruzado y debería usarse en su lugar " y el boleto está cerrado. Ahí vas