Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   скрипт генерации страницы (https://javascript.ru/forum/misc/2461-skript-generacii-stranicy.html)

Krondor 29.12.2008 14:31

скрипт генерации страницы
 
Добрый день, Уважаемые.
решил тут научится JavaScript'у, нашел в нете учебник, почитал его.
захотелось мне написать скрипт, который забирает параметры из формы и рисует точно такую же страничку, но с результатом вычислений.

вот код страницы:
Код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Новая страница</title>
  <script type="text/javascript" src="makepage.js"></script>
</head>
<body>
  <h2>Пробуем создавать новые странички</h2>
  <form name="form1">
  Основание: <input type="text" name="osn" size="5"><br>
  Высота:        <input type="text" name="vis" size="5"><br>
  Площадь треугольника равна: <br>
  <button onClick="make(document.form1.osn.value, document.form1.vis.value, 2);">Вычислить</button>
  </form>
</body>
</html>

вот код скрипта:
Код:

function make(o, v, n) {
  document.writeln("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">");
  document.writeln('<html xmlns="http://www.w3.org/1999/xhtml">');
  document.writeln("<head>");
  document.writeln("        <title>Новая страница " + n + "</title>");
  document.writeln("        <script type=\"text/javascript\" src=\"makepage.js\"></script>");
  document.writeln("</head>");
  document.writeln("<body>");
  document.writeln("        <h2>Пробуем создавать новые странички</h2>");
  document.writeln("        <form name=form1>");
  document.writeln("        Основание: <input type=\"text\" name=\"osn\" size=\"5\" value=\"" + o + "\"><br>");
  document.writeln("        Высота: <input type=\"text\" name=\"vis\" size=\"5\" value=\"" + v + "\"><br>");
  document.writeln("        Площадь треугольника равна: " + (o*v)/2 + "<br>");
  document.writeln("        <button onClick=\"make(document.form1.osn.value, document.form1.vis.value, " + (n+1) + ");\">Вычислить</button>");
  document.writeln("        </form>");
  document.writeln("</body>");       
  document.writeln("</html>");
}

все, хорошо, страничка открывается. данные из формы забираются, рисуется вторая страничка, которая является практически копией первой:
Код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Новая страница 2</title>
  <script type="text/javascript" src="makepage.js"></script>
</head>
<body>
  <h2>Пробуем создавать новые странички</h2>
  <form name=form1>
  Основание: <input type="text" name="osn" size="5" value="4"><br>
  Высота: <input type="text" name="vis" size="5" value="2"><br>
  Площадь треугольника равна: 4<br>
  <button onClick="make(document.form1.osn.value, document.form1.vis.value, 3);">Вычислить</button>
  </form>
</body>
</html>

но вот в чем проблема. при попытке изменить значения в полях формы и еще раз нажать на кнопку IE выдает ошибку(на 13-й строке кода, Предполагается наличие объекта).

скажите пожалуйста, где собака зарыта и почему на второй странице вылазит ошибка

twolf 30.12.2008 11:40

выкиньте этот учебник. document.writeln уже никто не использует. Книжка наверное 2001-2002 года.
На этом сайте есть хорошая подборка учебников- http://javascript.ru/book

Krondor 30.12.2008 11:43

а можно ответ по теме??
я уже понял, что учебник весьма древний, но как учебник - очень хорошая кника. собсно вот этот учебник.
другого пока нет. особенно учитывая то, что я читаю на работе и могу читать только с экрана и только то, что выложено в интернете, а не скачивается с него.


Часовой пояс GMT +3, время: 03:19.