Cannot access document's title element with jQuery (IE 8)

Я наблюдаю эту проблему в Internet Explorer 8, но не в Safari или Firefox. Пока что я не тестировал в других версиях IE.

Я разрабатываю свой собственный плагин jQuery и для этого вопроса я сократил его до двух соответствующих строк.


В IE 8, используя приведенный ниже код, $('title').text() ничего не делает. docTitle пустой, потому что title пустой, как будто селектор jQuery для , $('title') не работает. (Опять же, AFAIK, это только в IE 8)

(function ($) {
    $.fn.myPlugin = function (options) {

        var title = $('title').text(),
            docTitle = escape(title);

    };
})(jQuery);

http://jsfiddle.net/sparky672/YMBQ2/


Однако, используя простой JavaScript код ниже, document.title работает нормально во всем, включая IE 8...

(function ($) {
    $.fn.myPlugin = function (options) {

        var docTitle = escape(document.title);

    };
})(jQuery);

EDIT:

Не имеет значения, что этот код находится внутри плагина.

Тот же результат в IE 8 с этим...

$(document).ready(function () {    
    var title = $('title').text();
    alert(title);
});

Просто чтобы прояснить, я не настаиваю на использовании этого. На самом деле, я исправил свой плагин, просто используя document.title вместо этого. Если это не было понятно изначально, я просто спрашиваю, почему это не работает в IE 8.


Может ли кто-нибудь объяснить почему, или какую глупую ошибку я мог здесь совершить?


EDIT 2:

Вот несколько отчетов об ошибках jQuery по этому вопросу

http://bugs.jquery.com/ticket/7025

http://bugs.jquery.com/ticket/5881

http://bugs.jquery.com/ticket/2755

И десятки других, сообщающих о том же. Официальный ответ гласит, "document.title является единственным надежным кроссбраузерным способом и должен использоваться вместо него" и Тикет закрыт. Итак, вот.

7
задан Sparky 26 October 2011 в 02:13
поделиться