| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: для новичков > Объект open класса window |
| Автор: Syltan 7.8.2010, 23:23 | ||||||||
| Не работает данный код в браузере Гуглхром не выводит в новом окне, которое запустилось после нажатия на кнопку, панель инструментов, меню,адресную строку где можно вводить юрл. [code=html] Вот попробовал, не срабатывает в гуглхроме,в других браузерах нормально,не выводит текст в гуглхроме, скажите что здесь не так?
2) В этой строке:
то что возвращает метод open присваивается переменной mywindow, переменная mywindow превращается в объект? Далее идёт такое:
и такое:
объясните пож. это обращение через точку именно с майвиндоу, почему так надо писать? Заранее благодарю. |
| Автор: Amphiluke 7.8.2010, 23:40 |
| Проверил во всех доступных браузерах, в т.ч. Chrome. Работает нормально Метод open объекта document «открывает», т.е. создает новый документ в окне, уничтожая текущее содержимое, если оно присутствует. Этот метод необязателен к использованию, поскольку в случае необходимости последующий метод write сам вызовет этот метод. Метод close объекта document обязательный; он закрывает документ (не окно), указывая браузеру, что работа по его формированию закончена и его можно отображать как целое. |
| Автор: Syltan 7.8.2010, 23:44 | ||
Вот это не выводщит гуглхром ,в этом проблема. 2)Скажите mywindow.document.open(); mywindow. с точкой в самом начале почему пишется, кем он выступает, объектом что ли, он првратиося в объект здесь mywindow = open, или другое что-то произошло после этого? |
| Автор: Syltan 8.8.2010, 00:02 | ||||||
А почему обращение идёт от mywindow mywindow.document.open(); mywindow - это же прсото переменная а не объект или класс, почему через неё обращение идёт к объекту документ и его методу клосе(). Получается что ли mywindow(класс).document(объект).open()(метод объекта документ);? 2)Если вот это:
заменить на это
Вообще кнопка ничего не будет выдавать при запуске, будет просто толкьо нажиматься. |
| Автор: Amphiluke 8.8.2010, 00:12 | ||||||
Ну я же вам объясняю:
Переменная mywindow хранит ссылку на объект window. Поэтому вы можете через эту переменную обращаться к свойствам и методам открытого нового окна.
Чудеса! |
| Автор: Syltan 8.8.2010, 00:24 |
| 1) вот это mywindow.document.close(); будет означать (Ссылка на объект Window)/ Зачем переменной mywindow ссылаться вначале на объект window? И ещё, объект window принадлежит какому классу? 2) По поводу гуглхрома. При запуске странички просто нажимается кнопка и всё, никаких ошибок гуглхром не выдаёт. Или может вы имели ввиду как-то по другому проверить, если да то как? Консоль ошибок я не до конца понял, как это исследовать в гуглхроме. |
| Автор: Amphiluke 8.8.2010, 00:32 | ||||
Ээээ… O_o Как это зачем? Вы планируете манипулировать именно с документом в новом окне, а иначе как по-другому получить доступ к объекту document нового окна, не имея ссылки на само окно? Это все-таки его личное свойство document, а не чье-нибудь. И тем более не общее. Просто попробуйте внимательно прочитать какой-нибудь более или менее «нормальный» учебник с основами JavaScript.
Вы именно в консоли смотрели? Добавлено через 4 минуты и 59 секунд
У меня консоль в Chrome вызывается клавишной комбинацией Ctrl+Shift+J. В том случае, если к моменту вызова консоли возникла ошибка JavaScript, в нижней части окна красным пишется описание ошибки. |
| Автор: Syltan 8.8.2010, 00:37 | ||
| Как в консоле посмотреть? Я проверил не рабоатет кнопка во всех браузерах, врот привожу полный код.
|
| Автор: Amphiluke 8.8.2010, 00:39 |
| Syltan, я дописал в предыдущее сообщение |
| Автор: Syltan 8.8.2010, 00:43 |
| Выдало такие ошибки. Uncaught SyntaxError: Unexpected end of input 20trenirovka.html:28Uncaught ReferenceError: openas is not defined |
| Автор: Amphiluke 8.8.2010, 00:57 |
| Syltan, вы забыли закрыть фигурную скобку в конце тела функции. |
| Автор: Syltan 8.8.2010, 01:09 |
| Точно, но как-то странно, всё равно текста не отображается при нажатии на кнопку в новом окне гуглхрома, и в том новом окне нету меню и юрл-ссылки как в др.браузерах, вот что выходит после нажатия. |
| Автор: Amphiluke 8.8.2010, 08:15 |
| А что пишет тот самый alert-то? |
| Автор: Syltan 8.8.2010, 20:33 |
| Алерта не появляется в гуглхроме появляется только та картинка, последняя и больше ничего. |
| Автор: Amphiluke 8.8.2010, 20:58 | ||
| Отлично. На самом деле, конечно, скрипт прост, аки валенок,
передать методу open в первом параметре не пустую строку, а адрес какого-нибудь реально существующего тестового документа (его содержимое не важно). Возможно, что ваш Google Chrome не может обратиться к свойству document нового окна, в котором «отродясь ничего не было». Хотя обычно браузеры формируют минимальную структуру документа с обязательными блоками <html>, <head>, <body>. |
| Автор: Syltan 8.8.2010, 21:23 | ||
В консоли пишется вот такое:
|
| Автор: Amphiluke 8.8.2010, 21:54 | ||
Ну вот и попробуйте тогда то, что я вам говорил:
Добавлено @ 21:58 Ваш Chrome считает, что документ с «адресом» about:blank с чужого домена, и поэтому не позволяет вам модификацию документа (политика одного источника). Странное поведение, ИМХО. Но если передать методу open адрес тестовой странички, то это должно устранить проблему, судя по описанию ошибки. |
| Автор: Syltan 8.8.2010, 23:02 | ||||
Я попробовал в первый параметр передать страничку test.html с таким содрежанимем:
Код файла trenirovka.html
Выдаёт такой результат: Фот ниже, но в консоле как ни странно ошибок не выдаёт, но мой код не отправляется из треинорвки.хмл в тест.хтмл. |