|
js & iframe
|
|
| MegaFill | Дата: 18 Апреля 2009, 02:27 | Сообщение # 1 |  ● ● ● ● ● 1588 сообщений Статус: Offline | Чет я совсем уже... Вобщем есть страница с фреймом, нужно передать данные во фрейм и поместить в input. Вот код страницы Code <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Документ без названия</title> </head>
<body> <iframe id="frame" style='width:90%; height:400px;' src='iframe.html'></iframe> <script> document.getElementById('frame').contentWindow.document.getElementById('lol').value = 'abc'; </script> </body> </html>
и фрейм Code <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Документ без названия</title> </head>
<body> <input type="text" id="lol" style="width:100%;" size="20" value="" />
</body> </html> не работает!  | | |
|
| NecroProger | Дата: 18 Апреля 2009, 11:01 | Сообщение # 2 |  ● ● ● ● ● 1024 сообщения Статус: Offline | MegaFill, потому что к фрейму совсем по-другому надо обращаться, чтобы добраться до его DOM. Первый раз слышу. Кстати, фрейм должен быть на твоём домене. Кроме того, нужно ставить на онлоад. А то фрейм, может, не успел подгрузиться. Ну так вот, код страницы: Code <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Документ без названия</title> </head> <body> <iframe name='myframe' style='width:90%; height:400px;' src='iframe.html' onload='f();'></iframe> <script> function f(){ window.frames.myframe.document.getElementById('lol').value='abc'; } </script> </body> </html> Обрати внимание на параметр name. | | |
|
| Бармалей | Дата: 18 Апреля 2009, 11:08 | Сообщение # 3 | ● ● ● ● ● Тиран 7772 сообщения Статус: Offline | Code <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Документ без названия</title> </head>
<body> <iframe id="frame" onload="this.contentWindow.document.getElementById('lol').value = 'abc';" style='width:90%; height:400px;' src='iframe.html'></iframe> </body> </html>
 | | |
|
| NecroProger | Дата: 18 Апреля 2009, 11:31 | Сообщение # 4 |  ● ● ● ● ● 1024 сообщения Статус: Offline | Бармалей, не кроссбраузерно. Quote В теге iframe хранится ссылка на окно. В зависимости от браузера, это либо iframe.contentDocument, либо iframe.contentWindow.document, либо на худой конец iframe.document. Добавлено (18 Апрель 2009, 11:31) --------------------------------------------- © | | |
|
| Бармалей | Дата: 18 Апреля 2009, 11:41 | Сообщение # 5 | ● ● ● ● ● Тиран 7772 сообщения Статус: Offline | Бармалей, не кроссбраузерно. Использовал и проверял в Опере, Мозиле, IE и Хроме. Все работало. Для ослов 1-2 версии, лиса первой версии и оперы 1-5 версий писать не буду.
 | | |
|
| MegaFill | Дата: 18 Апреля 2009, 12:04 | Сообщение # 6 |  ● ● ● ● ● 1588 сообщений Статус: Offline | NecroProger, спс | | |
|
| NecroProger | Дата: 18 Апреля 2009, 12:04 | Сообщение # 7 |  ● ● ● ● ● 1024 сообщения Статус: Offline | Бармалей, я не пробовал, просто привожу то, что написано. В любом случае, обращение через window.frames работает везде. | | |
|
| MegaFill | Дата: 18 Апреля 2009, 12:11 | Сообщение # 8 |  ● ● ● ● ● 1588 сообщений Статус: Offline | NecroProger, а если к примеру у меня фреймы создаются скриптом и имеют такие имена myframe1, myframe2... То как сюда window.frames.myframe.document.getElementById('lol').value='abc'; подставлять эти имена? С ID понятно, там без каывычек пишешь переменную, а тут? | | |
|
| NecroProger | Дата: 18 Апреля 2009, 12:36 | Сообщение # 9 |  ● ● ● ● ● 1024 сообщения Статус: Offline | MegaFill, это же обычные объекты: Code window.frames[строку или переменную].document.getElementById('lol').value='abc'; | | |
|
| MegaFill | Отредактировал MegaFill - Суббота, 18 Апреля 2009, 13:41 Дата: 18 Апреля 2009, 13:24 | Сообщение # 10 |  ● ● ● ● ● 1588 сообщений Статус: Offline | а все разобрался. вопрос снят. | | |
|
| Бармалей | Дата: 18 Апреля 2009, 13:42 | Сообщение # 11 | ● ● ● ● ● Тиран 7772 сообщения Статус: Offline | Code frameid = 'frame'+1; window.frames[frameid].document.getElementById('id').value = 'abc';
 | | |
|
| MegaFill | Дата: 18 Апреля 2009, 14:23 | Сообщение # 12 |  ● ● ● ● ● 1588 сообщений Статус: Offline | Бармалей, гугл мне быстрее помог Но все равно спасибо  | | |
|