Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Объект open класса window 
:(
    Опции темы
Syltan
Дата 7.8.2010, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 301
Регистрация: 31.8.2009

Репутация: -1
Всего: -2



Не работает данный код в браузере Гуглхром не выводит в новом окне, которое запустилось после нажатия на кнопку, панель инструментов, меню,адресную строку где можно вводить юрл.
[code=html]
Вот попробовал, не срабатывает в гуглхроме,в других браузерах нормально,не выводит текст в гуглхроме, скажите что здесь не так?

Код

<html><head>
<title>Тренировочный документ</title>
<script type='text/javascript'>

function openas() {
mywindow = open('','newokno','width=500,height=400,status=1,menubar=1');
//Открываем документ
mywindow.document.open();
//Создаём документ
mywindow.document.write('<html><head><title>Создаём хтмл-документ');
mywindow.document.write('</title></head><body>');
mywindow.document.write('<center><font size=+3>');
mywindow.document.write('Этот HTML-документ создан при помощи JavaSript');
mywindow.document.write('</font></center>');
mywindow.document.write('</body></html>');

//Закрываем документ но не окно
mywindow.document.close();
}

</script>
</head>
<body>
<form>
<input type="button" value='Жми сюда' onClick="openas()">
</form>

</body>

</html>


2) В этой строке:
Код

mywindow = open(

то что возвращает метод open присваивается переменной mywindow,
 переменная mywindow превращается в объект?
Далее идёт такое:
Код

mywindow.document.open();

и такое:
Код

mywindow.document.write(

объясните пож. это обращение через точку именно с майвиндоу, почему так надо писать?
Заранее благодарю.
PM MAIL   Вверх
Amphiluke
Дата 7.8.2010, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Проверил во всех доступных браузерах, в т.ч. Chrome. Работает нормально smile

Метод open объекта document «открывает», т.е. создает новый документ в окне, уничтожая текущее содержимое, если оно присутствует. Этот метод необязателен к использованию, поскольку в случае необходимости последующий метод write сам вызовет этот метод. Метод close объекта document обязательный; он закрывает документ (не окно), указывая браузеру, что работа по его формированию закончена и его можно отображать как целое. 
PM   Вверх
Syltan
Дата 7.8.2010, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 301
Регистрация: 31.8.2009

Репутация: -1
Всего: -2



Код

Этот HTML-документ создан при помощи JavaSript


Вот это не выводщит гуглхром ,в этом проблема.

2)Скажите 
        mywindow.document.open();
mywindow. с точкой в самом начале почему пишется, кем он выступает, объектом что ли, он првратиося в объект здесь mywindow = open,
или другое что-то произошло после этого?
PM MAIL   Вверх
Amphiluke
Дата 7.8.2010, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Цитата(Syltan @  8.8.2010,  03:44 Найти цитируемый пост)
Скажите         mywindow.document.open();mywindow. с точкой в самом начале почему пишется, кем он выступает, объектом что ли, он првратиося в объект здесь mywindow = open,или другое что-то произошло после этого?

Метод open (объекта window) возвращает ссылку на объект созданного окна. Вот эту ссылку вы и запоминаете в переменной mywindow. Далее уже через точку вы обращаетесь к свойствам и методам этого открытого окна.


Цитата(Syltan @  8.8.2010,  03:44 Найти цитируемый пост)
Вот это не выводщит гуглхром ,в этом проблема.

хз, у меня работает. В Google Chrome. Попробуйте вывести alert'ом содержимое открытого документа. Для этого после вызова close допишите это:

Цитата(Syltan @  8.8.2010,  03:23 Найти цитируемый пост)

//Закрываем документ но не окно
mywindow.document.close();
alert(mywindow.document.body.innerHTML); // <----

Что покажет?


Это сообщение отредактировал(а) Amphiluke - 7.8.2010, 23:52
PM   Вверх
Syltan
Дата 8.8.2010, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 301
Регистрация: 31.8.2009

Репутация: -1
Всего: -2



Код

Вот эту ссылку вы и запоминаете в переменной mywindow...


А почему обращение идёт от mywindow  mywindow.document.open();
mywindow - это же прсото переменная а не объект или класс, почему через неё обращение идёт к объекту документ и его методу клосе().
Получается что ли mywindow(класс).document(объект).open()(метод объекта документ);?

2)Если вот это:

Код

//Закрываем документ но не окно
mywindow.document.close();


заменить на это

Код

//Закрываем документ но не окно
mywindow.document.close();
alert(mywindow.document.body.innerHTML); // <----


Вообще кнопка ничего не будет выдавать при запуске, будет просто толкьо нажиматься.
PM MAIL   Вверх
Amphiluke
Дата 8.8.2010, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Цитата(Syltan @  8.8.2010,  04:02 Найти цитируемый пост)
А почему обращение идёт от mywindow  mywindow.document.open();mywindow - это же прсото переменная а не объект или класс, почему через неё обращение идёт к объекту документ и его методу клосе().

Ну я же вам объясняю:

Цитата(Amphiluke @  8.8.2010,  03:52 Найти цитируемый пост)
Метод open (объекта window) возвращает ссылку на объект созданного окна.

Переменная mywindow хранит ссылку на объект window. Поэтому вы можете через эту переменную обращаться к свойствам и методам открытого нового окна.


Цитата(Syltan @  8.8.2010,  04:02 Найти цитируемый пост)
Вообще кнопка ничего не будет выдавать при запуске, будет просто толкьо нажиматься.

Чудеса!  smile Исследуйте консоль ошибок в Chrome. Есть какие-нибудь сообщения?
PM   Вверх
Syltan
Дата 8.8.2010, 00:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 301
Регистрация: 31.8.2009

Репутация: -1
Всего: -2



1) вот это mywindow.document.close(); будет означать   (Ссылка на объект Window)/
Зачем переменной mywindow ссылаться вначале на объект window? И ещё, объект window принадлежит какому классу?

2)  По поводу гуглхрома. При запуске странички просто нажимается кнопка и всё, никаких ошибок гуглхром не выдаёт.
Или может вы имели ввиду как-то по другому проверить, если да то как? Консоль ошибок я не до конца понял, как это исследовать в гуглхроме.

Это сообщение отредактировал(а) Syltan - 8.8.2010, 00:25
PM MAIL   Вверх
Amphiluke
Дата 8.8.2010, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Цитата(Syltan @  8.8.2010,  04:24 Найти цитируемый пост)
Зачем переменной mywindow ссылаться вначале на объект window?

Ээээ… O_o  Как это зачем? Вы планируете манипулировать именно с документом в новом окне, а иначе как по-другому получить доступ к объекту document нового окна, не имея ссылки на само окно? Это все-таки его личное свойство document, а не чье-нибудь. И тем более не общее.
Просто попробуйте внимательно прочитать какой-нибудь более или менее «нормальный» учебник с основами JavaScript.


Цитата(Syltan @  8.8.2010,  04:24 Найти цитируемый пост)
При запуске странички просто нажимается кнопка и всё, никаких ошибок гуглхром не выдаёт.

Вы именно в консоли смотрели?

Добавлено через 4 минуты и 59 секунд
Цитата(Syltan @  8.8.2010,  04:24 Найти цитируемый пост)
Консоль ошибок я не до конца понял, как это исследовать в гуглхроме.

У меня консоль в Chrome вызывается клавишной комбинацией Ctrl+Shift+J. В том случае, если к моменту вызова консоли возникла ошибка JavaScript, в нижней части окна красным пишется описание ошибки. 
PM   Вверх
Syltan
Дата 8.8.2010, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 301
Регистрация: 31.8.2009

Репутация: -1
Всего: -2



Как в консоле посмотреть?
Я проверил не рабоатет кнопка во всех браузерах, врот привожу полный код.
Код

<html><head>
<title>Тренировочный документ</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<!--___________________________________________________________________-->

<script type='text/javascript'>

function openas() {
//Переменная mywindow хранит ссылку на объект window.
mywindow = open('','newokno','width=500,height=400,status=1,toolbar=1,menubar=1');
//Открываем документ
mywindow.document.open();
//Создаём документ
mywindow.document.write('<html><head><title>Создаём хтмл-документ');
mywindow.document.write('</title></head><body>');
mywindow.document.write('<center><font size=+3>');
mywindow.document.write('Этот HTML-документ создан при помощи JavaSript');
mywindow.document.write('</font></center>');
mywindow.document.write('</body></html>');

//Закрываем документ но не окно
mywindow.document.close();
alert(mywindow.document.body.innerHTML); // <----

</script>
</head>
<body>
<form>
<input type="button" value='Жми сюда' onClick="openas()">
</form>

</body>

</html>


Это сообщение отредактировал(а) Syltan - 8.8.2010, 00:42
PM MAIL   Вверх
Amphiluke
Дата 8.8.2010, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Syltan, я дописал в предыдущее сообщение
PM   Вверх
Syltan
Дата 8.8.2010, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 301
Регистрация: 31.8.2009

Репутация: -1
Всего: -2



Выдало такие ошибки.
Uncaught SyntaxError: Unexpected end of input
20trenirovka.html:28Uncaught ReferenceError: openas is not defined
PM MAIL   Вверх
Amphiluke
Дата 8.8.2010, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Syltan, вы забыли закрыть фигурную скобку в конце тела функции.  smile 
PM   Вверх
Syltan
Дата 8.8.2010, 01:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 301
Регистрация: 31.8.2009

Репутация: -1
Всего: -2



Точно, но как-то странно, всё равно текста не отображается при нажатии на кнопку в новом окне гуглхрома, и в том новом окне нету меню и юрл-ссылки как в др.браузерах, вот что выходит после нажатия.


Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  clip_image002.jpg 24,27 Kb
PM MAIL   Вверх
Amphiluke
Дата 8.8.2010, 08:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



А что пишет тот самый alert-то?
 
PM   Вверх
Syltan
Дата 8.8.2010, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 301
Регистрация: 31.8.2009

Репутация: -1
Всего: -2



Алерта не появляется в гуглхроме появляется только та картинка, последняя и больше ничего.
PM MAIL   Вверх
Amphiluke
Дата 8.8.2010, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Отлично.  smile  В консоли, как я понимаю уже ни о каких ошибках не пишется? Осталось локализовать в функции openas ту строчку, на которой происходит сбой. Можно последовательно ставить alert перед каждой строчкой в функции openas и таким образом наконец найти место, с которого alert перестанет появляться. Это место и будет местом ошибки. Оттуда можно начинать думать. 
На самом деле, конечно, скрипт прост, аки валенок,  smile ошибок вообще не должно быть. Я бы на вашем месте попробовал бы еще вот здесь:
Цитата(Syltan @  8.8.2010,  04:37 Найти цитируемый пост)
mywindow = open('','newokno','width=500,height=400,status=1,toolbar=1,menubar=1');

передать методу open в первом параметре не пустую строку, а адрес какого-нибудь реально существующего тестового документа (его содержимое не важно). Возможно, что ваш Google Chrome не может обратиться к свойству document нового окна, в котором «отродясь ничего не было». Хотя обычно браузеры формируют минимальную структуру документа с обязательными блоками <html>, <head>, <body>.
PM   Вверх
Syltan
Дата 8.8.2010, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 301
Регистрация: 31.8.2009

Репутация: -1
Всего: -2



В консоли пишется вот такое:
Код

Unsafe JavaScript attempt to access frame with URL about:blank from frame with URL file:///C:/Documents%20and%20Settings/Admin/%D0%A0%D0%B0%D0%B1%D0%BE%D1%87%D0%B8%D0%B9%20%D1%81%D1%82%D0%BE%D0%BB/%D0%A2%D1%80%D0%B5%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8/trenirovka.html. Domains, protocols and ports must match.
trenirovka.html:12Uncaught TypeError: Cannot call method 'open' of undefined

PM MAIL   Вверх
Amphiluke
Дата 8.8.2010, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Ну вот и попробуйте тогда то, что я вам говорил:

Цитата(Amphiluke @  9.8.2010,  00:58 Найти цитируемый пост)
передать методу open в первом параметре не пустую строку, а адрес какого-нибудь реально существующего тестового документа (его содержимое не важно).


Добавлено @ 21:58
Ваш Chrome считает, что документ с «адресом» about:blank с чужого домена, и поэтому не позволяет вам модификацию документа (политика одного источника). Странное поведение, ИМХО. Но если передать методу open адрес тестовой странички, то это должно устранить проблему, судя по описанию ошибки.

Это сообщение отредактировал(а) Amphiluke - 8.8.2010, 21:59
PM   Вверх
Syltan
Дата 8.8.2010, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 301
Регистрация: 31.8.2009

Репутация: -1
Всего: -2



Я попробовал в первый параметр передать страничку test.html с таким содрежанимем:
Код

<html>
<head><title>Содержание странички тест</title></head>
<body>
<center><h2>Привет мир</h2></center>
</body>
</html>


Код файла trenirovka.html

Код

<html><head>
<title>Тренировочный документ</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<!--___________________________________________________________________-->

<script type='text/javascript'>

function openas() {
//Переменная mywindow хранит ссылку на объект window.
mywindow = open('test.html','newokno','width=500,height=400,status=1,toolbar=1,menubar=1');
//Открываем документ
mywindow.document.open();
//Создаём документ
mywindow.document.write('<html><head><title>Создаём хтмл-документ');
mywindow.document.write('</title></head><body>');
mywindow.document.write('<center><font size=+3>');
mywindow.document.write('Этот HTML-документ создан при помощи JavaSript');
mywindow.document.write('</font></center>');
mywindow.document.write('</body></html>');

//Закрываем документ но не окно
mywindow.document.close();
alert(mywindow.document.body.innerHTML); // <----
}
</script>
</head>
<body>
<form>
<input type="button" value='Жми сюда' onClick="openas()">
</form>

</body>

</html>





Выдаёт такой результат:
Фот ниже, но в консоле как ни странно ошибок не выдаёт, но мой код не отправляется из треинорвки.хмл в тест.хтмл.


Это сообщение отредактировал(а) Syltan - 8.8.2010, 23:03

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  clip_image002.jpg 30,81 Kb
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0633 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.