Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: И снова innerHTML
 
 автор: mikado3333   (18.07.2012 в 15:55)   письмо автору
 
 

Приветствую!

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
         "http://www.w3.org/TR/html4/strict.dtd">


<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="../CSS/style.css">
</head>
<body>

<script type="text/javascript">
<!--
var t =1;
document.getElementById("div1").innerHTML = t;
//-->
</script>

<div id="div1"> </div>

</body>
</html>



Не работает(( . Подскажите где ошибка?

  Ответить  
 
 автор: Lelik   (18.07.2012 в 16:04)   письмо автору
 
   для: mikado3333   (18.07.2012 в 15:55)
 



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
         "http://www.w3.org/TR/html4/strict.dtd">


<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="../CSS/style.css">
</head>
<body>


<div id="div1"> </div>
<script type="text/javascript">
<!--
var t =1;
document.getElementById("div1").innerHTML = t;
//-->
</script>

</body>
</html> 

  Ответить  
 
 автор: mikado3333   (18.07.2012 в 16:22)   письмо автору
 
   для: Lelik   (18.07.2012 в 16:04)
 

Получилось, спасибо!

  Ответить  
 
 автор: Lelik   (18.07.2012 в 16:36)   письмо автору
 
   для: mikado3333   (18.07.2012 в 16:22)
 

понятно почему?

  Ответить  
 
 автор: mikado3333   (18.02.2013 в 15:02)   письмо автору
 
   для: mikado3333   (18.07.2012 в 15:55)
 

Господа опять "затык" с innerHTML или опять не внимательность.
Суть проблемы.
Кнопка открывает новое окно

<script type="text/javascript"> 

    function print_svodka()//печать сводки
        {
            var Printe = window.open( "R/2/2svodka_pechat.php", "svodka_pechat", "scrollbars=1,width=900,height=400");
         
            Printe.document.getElementById("pr").innerHTML="test";
        }

<input type = 'button' onclick = 'print_svodka();' value = 'ПЕЧАТЬ'>



Окно открывается, но содержимое не выводится((

код окна дочернего окна

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
         "http://www.w3.org/TR/html4/strict.dtd">


<html>
<head>
<title></title>
</head>
<body>

<div name ="print" id="pr">

</div>

</body>
</html>

  Ответить  
 
 автор: Sfinks   (18.02.2013 в 15:41)   письмо автору
 
   для: mikado3333   (18.02.2013 в 15:02)
 

замените
Printe.document.getElementById("pr").innerHTML="test";
на
alert(Printe.document.getElementById("pr").tagName);

И попробуйте проанализировать результат.

  Ответить  
 
 автор: Sfinks   (18.02.2013 в 15:57)   письмо автору
 
   для: Sfinks   (18.02.2013 в 15:41)
 

Хотя в этом случае даже понятнее будет на:
alert(Printe.document.getElementById("pr"));

  Ответить  
 
 автор: mikado3333   (18.02.2013 в 16:31)   письмо автору
 
   для: Sfinks   (18.02.2013 в 15:57)
 

>Хотя в этом случае даже понятнее будет на:
>
alert(Printe.document.getElementById("pr"));


этот код выводит результат, а мне нужно передать в div с id=pr строку test. Попробовав Ваш вариант получил null. т.к. ни чего не передал (если правильно понимаю).

Заметил что если часто нажимать кнопку ПЕЧАТЬ переданный текст проскальзывает и исчезает. Не понятно!!!!

Попробовал вот так


<script type="text/javascript">
    function print_svodka()//печать сводки
        {
            var Printe = window.open( "2svodka_pechat.html", "svodka_pechat", "scrollbars=1,width=900,height=400");
         
            alert(Printe.document.getElementById("pr"));
            Printe.document.getElementById("pr").innerHTML="test";
        }
</script>
<input type = 'button' onclick = 'print_svodka();' value = 'ПЕЧАТЬ'>


Результат окно "алертнуло" null, затем окно отобразила то что нужно - test. Объясните логику???

  Ответить  
 
 автор: Sfinks   (18.02.2013 в 21:13)   письмо автору
 
   для: mikado3333   (18.02.2013 в 16:31)
 

Логика в том, что window.open() выполняется какое-то время, т.к. нужно отправить запрос на сервер, дождаться ответа, обработать, создать DOM нового документа и вот только после этого будет существовать <div name ="print" id="pr"></div>.
А строка, следующая за window.open() выполняется сразу, ничего не ожидая и не проверяя.

Поэтому alert(Printe.document.getElementById("pr")) выводит null! Не потому что "т.к. ни чего не передал", а потому что этого объекта еще не существует!

И совершенно логично, что когда вы вывели alert() после window.open(), то выполнение скрипта приостановилось. А когда вы закрыли окно алерта, то документ Printe уже был создан и все сработало.

  Ответить  
 
 автор: mikado3333   (19.02.2013 в 07:53)   письмо автору
 
   для: Sfinks   (18.02.2013 в 21:13)
 

Спасибо, Sfinks. Теперь понятно в чем "затык".

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования