Работа с фреймом
Здраствуйте.
Необходимо передать данные в форму и отправить. Подскажите пожалуйста как обратиться к форме в другом документе или ссылочку - где почитать об этом. Например есть документ index.html со скриптом и документ с формой inframe.html отображаемый в iframe на странице index.html <html> <head> <title>index.html</title> <script type="text/javascript"> // ... код после которого необходимо передать данные в форму // на странице inframe.html ... </script> </head> <body> <iframe id="myFrame" src="inframe.html"></iframe> </body> </html> <html> <head> <title>inframe.html</title> </head> <body> <form action="" method="post"> <input id="input1" name="input1" type="text" /> <input type="submit" /> </form> </body> </html> Или может быть, возможно отправить POST-данные не перезагружая всю страницу? И второй вопрос - как скриптом открыть какую либо страницу в фрейме? Следующий код меняет значение аттрибута src, однако страница по прежнему остаётся открыта inframe.html var myFrame = document.getElementById('myFrame'); myFrame.setAttribute("src", "any_inframe.html"); |
Можно попробовать модную штуку AJAX.
Вот выдернуто с рабочего сайта. function getHTTPRequestObject() { var xmlHttpRequest; /*@cc_on @if (@_jscript_version >= 5) try { xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP"); } catch (exception1) { try { xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP"); } catch (exception2) { xmlHttpRequest = false; } } @else xmlhttpRequest = false; @end @*/ if (!xmlHttpRequest && typeof XMLHttpRequest != 'undefined') { try { xmlHttpRequest = new XMLHttpRequest(); } catch (exception) { xmlHttpRequest = false; } } return xmlHttpRequest; } var httpRequester = getHTTPRequestObject(); var couldProcess = false; function Nmsg() { if (!couldProcess && httpRequester) { httpRequester.open("GET", "./ajax.aspx?act=nmsg",true); httpRequester.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"); httpRequester.onreadystatechange = processNmsg; couldProcess = true; httpRequester.send(null); } } function processNmsg() { if ( httpRequester.readyState == 4 ) { if ( httpRequester.status == 200) { //А вот это контрол в другом фрейме =) parent.frames[0].document.getElementById('msgLab').innerHTML=httpR equester.responseText; couldProcess = false; } } } |
Спасибо за почти своевременный ответ, прошло-то всего чуть больше месяца, но задача давно решена. А AJAX штука хорошая конечно, но не всегда стоит того... Но всё равно спасибо, хоть кто-то как-то отозвался...
|
Часовой пояс GMT +3, время: 06:23. |