Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Дерево DOM


Автор: fclmfan 28.11.2008, 09:39
Всем привет, имеется такой скрипт, использующий DOM, но в IE почемуто не работает эта строчка: alert("The page title is '" + titleText.nodeValue + "'");
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script>
// Эти две первые строки получают DOM-дерево текущей Web-страницы,  
//   и затем элемент <html> для этого дерева
var myDocument = document;
var htmlElement = myDocument.documentElement;
alert("The root element of the page is " + htmlElement.nodeName);

// Ищем элемент <head>
var headElement = htmlElement.getElementsByTagName("head")[0];
if (headElement != null) {
  alert("We found the head element, named " + headElement.nodeName);
  // Отображаем элемент title страницы
  var titleElement = headElement.getElementsByTagName("title")[0];
  if (titleElement != null) {
    // text будет первым дочерним узлом элемента <title>
    var titleText = titleElement.firstChild;
    // Мы можем получить текст текстового узла, используя nodeValue
    alert("The page title is '" + titleText.nodeValue + "'");
  }
}
</script>
</head>

<body>
</body>
</html>

Автор: Michael.de 29.11.2008, 02:35
fclmfan, в IE в твоём скрипте titleElement.firstChild равен null, соотв. null.nodeValue даёт ошибку...
Код

// используй вместо:
var titleText = titleElement.firstChild;
alert("The page title is '" + titleText.nodeValue + "'");
// следующее:
var titleText = titleElement.text;
alert("The page title is '" + titleText + "'");

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)