Я вижу эту проблему в Internet Explorer 8, но не в Safari или Firefox. До сих пор я не тестировал в других версиях IE.
Я разрабатываю свой собственный плагин jQuery, и для этого вопроса я сократил его до двух соответствующих строк.
В IE 8, используя код ниже, $('title').text()
ничего не делает. docTitle
пусто, потому что title
пусто, как будто селектор jQuery для <title>
, $('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.
Кто-нибудь может объяснить , почему , или какую глупую ошибку я здесь допустил?
РЕДАКТИРОВАТЬ 2:
Вот некоторые сообщения об ошибках jQuery по этому вопросу
http://bugs.jquery.com/ticket/7025
http://bugs.jquery.com/ticket/5881
http://bugs.jquery.com/ticket/2755
И десятки других сообщили об одном и том же. Официальный ответ заключается в том, что "document.title
является единственным надежным кросс-браузерным способом и должен использоваться вместо" , и Билет закрыт. Итак, поехали.