Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   iframe + form + target + ie = БОРОДА! (https://javascript.ru/forum/css-html-internet-explorer/10825-iframe-form-target-ie-%3D-boroda.html)

Diem 22.07.2010 22:34

iframe + form + target + ie = БОРОДА!
 
Есть страничка (используються фрэймы)
Создаю в одном из фрэймов - iframe под средстом createElement + присваиваю ему name

Так же динамически содаёться форма с таргетом на данный iframe

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

Но в ie выскакивает новое окно.

3 часа не могу дать ладу

Octane 22.07.2010 23:57

Цитата:

Сообщение от Diem
iframe под средстом createElement + присваиваю ему name

Покажите код

Diem 23.07.2010 02:42

var frame = document.createElement('frame');
frame.name = 'IN_Frame';
fmdoc.body.appendChild(frame);


fmdoc это document фрэйма в который вставляеться iframe

Octane 23.07.2010 02:58


Используйте setAttribute для name:
frame.setAttribute("name", "IN_Frame");

Diem 23.07.2010 21:46

Во первых прошу прощение, createElement('iframe') вместо frame конечно.
Во вторых такое поведение происходит только в режиме совместимости, ie 6 из multiple ie так же выкидывает новое окно

<html>
    <head>
    </head>

    <body>
        <script>
            var iframe = document.createElement('iframe');
            iframe.name = 'IFrame';

            document.body.appendChild(iframe);
            iframe.name = 'IFrame';
            iframe.setAttribute('name', 'IFrame');
        </script>

        <form target="IFrame">
            <input type="submit">
        </form>
    </body>
</html>


Ниже приведённый код так же не работает

Octane 23.07.2010 22:18

Попробуйте так:
<!DOCTYPE html>
<a href="http://google.ru" target="test">link</a>
<script>
function parse(html) {
	var tmp = document.createElement("div");
	tmp.innerHTML = html;
	return tmp.firstChild;
}
document.body.appendChild(parse('<iframe name="test"></iframe>'));
</script>

Diem 24.07.2010 14:16

Действительно таким методом всё работает.
Большое спасибо, очень помогли.


Часовой пояс GMT +3, время: 04:54.