Если проблема вызвана ударом ограничения памяти, вы можете попробовать установить более высокое значение (это может работать или не зависит от конфигурации php).
это устанавливает ограничение на память до 12 Мб
ini\_set("memory_limit","12M");
Во всех совместимых браузерах (включая Chrome / Safari), document.doctype
также возвращает объект DocumentType
. Следующий код можно использовать для генерации правильной строки DOCTYPE.
var node = document.doctype;
var html = "<!DOCTYPE "
+ node.name
+ (node.publicId ? ' PUBLIC "' + node.publicId + '"' : '')
+ (!node.publicId && node.systemId ? ' SYSTEM' : '')
+ (node.systemId ? ' "' + node.systemId + '"' : '')
+ '>';
Этот метод возвращает правильную строку для допустимых (HTML5) типов документов , например:
<!DOCTYPE html>
<!DOCTYPE html SYSTEM "about:legacy-compat">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
Объяснение кода:
node.name # Holds the name of the root element, eg: HTML / html
node.publicId # If this property is present, then it's a public document type.
#>Prefix PUBLIC
!node.publicId && node.systemId
# If there's no publicId, but a systemId, prefix SYSTEM
node.systemId # Append this if present
Вы также можете использовать этот вкладыш, чтобы получить текущий тип документа. Это будет работать в в любом современном браузере и IE 9 и выше .
new XMLSerializer().serializeToString(document.doctype);
function get_doctype()
{
var doctype =
'<!DOCTYPE ' +
document.doctype.name +
(document.doctype.publicId?' PUBLIC "' + document.doctype.publicId + '"':'') +
(document.doctype.systemId?' "' + document.doctype.systemId + '"':'') + '>';
return doctype;
}
Это то, что вы ищете?
alert(document.doctype.publicId);
Объединить DocumentType.name
, .publicId
и .systemId
. Что-то вроде:
'<!DOCTYPE '+
DocumentType.name+' PUBLIC "'+ //maybe you should check for publicId first
DocumentType.publicId+'" "'+
DocumentType.systemId+'">'