If doctype is <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
// do something
else
// do something
Как?
Спасибо.
If doctype is <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
// do something
else
// do something
Как?
Спасибо.
Хорошо, я вернулся после тестирования в IE, Chrome, Firefox и Opera. IE предоставит вам полный тип документа со следующим фрагментом кода:
var doctype = document.documentElement.previousSibling.nodeValue;
// -> DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
К сожалению, это, вероятно, неверно, так как Chrome, Firefox и Opera возвращают null
вместо nodeValue
. Поскольку ни один из них не поддерживает outerHTML
, я не могу придумать способ получить полный тип документа, но вы можете получить отдельные части:
var doctype = document.documentElement.previousSibling;
console.log(doctype.systemId)
// -> http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd
console.log(doctype.publicId)
// -> -//W3C//DTD XHTML 1.0 Strict//EN
Однако это не работает в IE, но разобрать их будет несложно. Вы можете использовать оператор if
, чтобы проверить, что nodeValue
не является null
, и вернуться к проверке systemId
или publicId
.
Сценарий, используемый для запуска тестов: http://jsfiddle.net/Cwb8q/
$(document).siblings();
-› ups
- person jAndy; 15.06.2010
$(document.documentElement).siblings()
не выдает ошибку, но не содержит тип документа в результатах.
- person Andy E; 15.06.2010
Вы можете использовать объект jQuery.support для проверки определенных функций браузера (например, BoxModel) и работает против них.
document.doctype
и document.firstChild
оба возвращают тип документа, хотя я не знаю, насколько широко они поддерживаются.
Попробуйте использовать атрибут this.document.doctype. Если не объявлен, результатом будет null, в противном случае результатом будет объект с типом документа.
Вы можете попробовать:
вар документ = $ ("DOCTYPE");
$('DOCTYPE')
всегда возвращает []
, а правильное включение восклицательного знака, т. е. запись $('!DOCTYPE')
, приводит к синтаксической ошибке: Error: Syntax error, unrecognized expression: !DOCTYPE
.
- person zrajm; 28.03.2013