Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.04.2012, 19:46
Новичок на форуме
Отправить личное сообщение для Vs1001 Посмотреть профиль Найти все сообщения от Vs1001
 
Регистрация: 04.04.2012
Сообщений: 7

Javascript Iframe
<script type="text/javascript">
function startfunc () {
var i, frames;
frames = document.getElementsByTagName("iframe");
for (i = 0; i < frames.length; ++i)
{
frames[i].document.forms[0].submit();
}
}
startfunc();
</script>

Пишет ошибку (Uncaught TypeError: Cannot read property 'forms' of undefined startfunc
(anonymous function))

и обрывается дальше функция

Как это решить? Если ищу формы, когда создаю страницу без Iframe, то всё работает, submit. А как только добавляю Iframe та же самая submit перестаёт работать.


"for (var i = 0; i < document.getElementsByName(\"mdcform\").length; i++) {\n"+
"document.getElementsByName(\"mdcform\")[i].submit();\n"+
" }\n"+
(вот так работает если без iframe)



Вот такие фреймы внутри:

<iframe style="display: none;">
<form method="POST" name="mdcform3" action="http://services.odata.org/OData/OData.svc/Categories">
<input type="hidden" name="..." value="..."/>
<input type="hidden" name="..." value="Mi, 04-Apr-2012 20:47:29 GMT"/>
</form>
</iframe>
<iframe style="display: none;">
<form method="POST" name="mdcform4" action="http://services.odata.org/OData/OData.svc/Categories">
<input type="hidden" name="..." value="..."/>
<input type="hidden" name="..." value="Mi, 04-Apr-2012 20:47:29 GMT"/>
</form>
</iframe>
Ответить с цитированием
  #2 (permalink)  
Старый 04.04.2012, 22:29
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

у фрейма нет свойства document.

у него есть contentWindow (глобальный объект window у фрейма)
и contentDocument (объект document у фрейма)
Ответить с цитированием
  #3 (permalink)  
Старый 05.04.2012, 12:56
Новичок на форуме
Отправить личное сообщение для Vs1001 Посмотреть профиль Найти все сообщения от Vs1001
 
Регистрация: 04.04.2012
Сообщений: 7

спасибо!

у меня не получается найти элементы во фрейме, если просто искать по документу, находит. а если во фрейме то нет. имена одни и те же.
сами фреймы тоже находят. проблема в том, что если submit делать когда нет фреймов, то всё ок. а если есть фреймы то только через них надо, иначе не идёт.


window.onload = function startfunc () {
var i, frames;
if(readCookie("MRSAPSSO2") != null){
frames = document.getElementsByTagName("iframe");
for (i = 0; i < frames.length; ++i)
{
var iframe = frames[i];
var iframeDocument = null;
if (iframe.contentDocument) {
iframeDocument = iframe.contentDocument;
} else if (iframe.contentWindow) {
// for IE 5.5, 6 and 7:
iframeDocument = iframe.contentWindow.document;
}
if (!!iframeDocument) {
// do things with the iframe's document object
} else {
// this browser doesn't seem to support the iframe document object
}
iframeDocument.getElementsByTagName("form")[0].submit();
}
}
Ответить с цитированием
  #4 (permalink)  
Старый 05.04.2012, 20:33
Аватар для VelMizar
Новичок на форуме
Отправить личное сообщение для VelMizar Посмотреть профиль Найти все сообщения от VelMizar
 
Регистрация: 02.04.2012
Сообщений: 8

Это не возможно... Если содержимое Iframe не с одного домена... Кажись что-то с этим связанно....
Ответить с цитированием
  #5 (permalink)  
Старый 06.04.2012, 08:47
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

http://learn.javascript.ru/frames-and-iframes

1) Задавать переменным имена, совпадающие с именами ключевых объектов (например, frames) может быть совсем небезопасно.
2) Для доступа к iframe у окна и так уже есть свойство frames[].
3) Лично мне не совсем понятно, откуда вы пытаетесь отправить данные из форм (у вас формы на той же странице, где и фреймы, я же так предполагаю, вы хотели отправить данные из форм, которые будут загружены в эти фреймы).
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача параметров javascript между iframe и документом. freedon Events/DOM/Window 8 05.05.2011 16:29
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34
Javascript запрещающий открывать iframe в новом окне. HELP! Андреи Events/DOM/Window 11 26.09.2009 07:36
bbcode, iframe и javascript Dark[Ol(U23)leneri] Я не знаю javascript 0 10.06.2009 19:52