Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Обновление .... / 11 сообщений из 11, страница 1 из 1
22.12.2008, 15:20
    #35728069
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление ....
Подскажите, пожалуйста... Есть вот такая страничка:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
<html>
<body>

<script type="text/javascript" language="JavaScript">
    function fillIrame(){
        if(!document.getElementById("iframe_el")){
            createIframe();
        }
        var iframe=document.getElementById("iframe_el");
        iframe.setAttribute("width", "300px");
        iframe.setAttribute("height","200px");

        iframe.style.visibility="visible";
        var iframe_document=iframe.contentWindow.document;  
        iframe_document.body.innerHTML="111111111111111111111111111111111111111111111111";

    };

    function createIframe(){
        var id="iframe_el";
        var div_out=document.getElementById("output");
        div_out.innerHTML="<iframe id="+id+ " style='visibility:hidden;'></iframe>";
    }

</script>
<div id="output">

</div>
<!--<iframe id="iframe_el" style="visibility:hidden;"></iframe>-->
<input type="button" onclick="fillIrame();"/>
</body>
</html>

При клике на кнопочке, строка "111111111111111111111111111111111111111111111111" добавляется в iframe.... Вернее должна добавляться :)

Мозила вообще молчит, не кидает даже никаких ошибок.. Експлорер говорит, что
var iframe_document=iframe.contentWindow.document; это null или not object. В опере все работает.

Если добавить в методе createIframe() последней строчкой "alert('чего-то там')"? то все срабатывает. Такое впечатление, что то, что вставлено с помощью innerHTML не успевает занестись в документ.....
Как обойти это дело, подскажите, пожалуйста.
...
Рейтинг: 0 / 0
22.12.2008, 15:36
    #35728115
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление ....
Не успевает. Надо единички присваивать наоборот скриптом из дочернего окна.
...
Рейтинг: 0 / 0
22.12.2008, 16:13
    #35728236
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление ....
Спасибо... :)

Переделал вот так:

<html>
<body>
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
<script type="text/javascript" language="JavaScript">
    function fillIrame(){
        if(!document.getElementById("iframe_el")){
            createIframe();
        }
        var iframe=document.getElementById("iframe_el");
        iframe.setAttribute("width", "500px");
        iframe.setAttribute("height","300px");

        iframe.style.visibility="visible";


        iframe.contentWindow.loadText("222222222222222");
        // var iframe_document=iframe.contentWindow.document;
        //iframe_document.body.innerHTML="111111111111111111111111111111111111111111111111";


    };

    function createIframe(){
        var id="iframe_el";
        var div_out=document.getElementById("output");

        var ifr=document.createElement("iframe");
        ifr.setAttribute("style.visibility","hidden");
        ifr.setAttribute("src","about:blank");
        ifr.setAttribute("id",id);

        var script = document.createElement("script");
        script.setAttribute("type","text/javascript");
        script.setAttribute("language","JavaScript");

        script.appendChild(document.createTextNode("function loadText(text){ document.body.innerHTML=text;}"));

        var head=document.createElement("head");

        head.appendChild(script);

        ifr.appendChild(head);

        div_out.appendChild(ifr);



        //div_out.innerHTML="<iframe id="+id+ " style='visibility:hidden;' src='about:blank'></iframe>";
    }

</script>
<div id="output">

</div>
<!--<iframe id="iframe_el" style="visibility:hidden;"></iframe>-->
<input type="button" onclick="fillIrame();"/>
</body>
</html>

не находит функцию.. :( В чем моя ошибка??
...
Рейтинг: 0 / 0
22.12.2008, 16:45
    #35728319
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление ....
Аналогичный вопрос был недавно про окно тынц .
Идея в том, чтобы грузить не "эбаут:бланк", а страничку со скриптом, который из родительского фрейма берёт какую-нибудь переменную и куда надо себе присваивает. Например, на свой онлоад присваивает себе в иннерХТМЛ переменную с единичками. Только обращаться к родительскому фрейму не так как в примере (opener), а parent или как-то ещё.
...
Рейтинг: 0 / 0
22.12.2008, 16:55
    #35728343
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление ....
Я понимаю.. но в том-то и дело, что мне нужно грузить в этот iframe именно контент, а не страницу.. Потому что с основной страницы, на которой должен будет находиться iframe, посылается запрос на сервер, а ответ сервера - как раз этот контент. Он формируется из шаблона freemarker'a...
Вот и пытаюсь искорячиться так, чтобы после генерирования на лету iframe записать в его body этот ответ сервера..
...
Рейтинг: 0 / 0
22.12.2008, 17:01
    #35728356
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление ....
Большой Синий Кит...но в том-то и дело, что мне нужно грузить в этот iframe именно контент, а не страницу...
Я как раз в том топике и пытался объяснить, как это сделать.
...
Рейтинг: 0 / 0
22.12.2008, 17:01
    #35728357
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление ....
Кстати, переделал функцию, в предыдущем куске точно была ошибка, но и сейчас не работает:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
function createIframe(){
        var id="iframe_el";
        var div_out=document.getElementById("output");

        var ifr=document.createElement("iframe");
        ifr.setAttribute("style.visibility","hidden");
        ifr.setAttribute("src","about:blank");
        ifr.setAttribute("id",id);

        var script = document.createElement("script");
        script.setAttribute("type","text/javascript");
        script.setAttribute("language","JavaScript");

        script.appendChild(document.createTextNode("function loadText(text){ document.body.innerHTML=text;}"));

        var head=document.createElement("head");

        head.appendChild(script);

        ifr.appendChild(head);

        div_out.appendChild(ifr);
    }

...
Рейтинг: 0 / 0
22.12.2008, 17:12
    #35728391
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление ....
Ага.. понял Вашу идею.. Попробую :)
...
Рейтинг: 0 / 0
22.12.2008, 17:26
    #35728430
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление ....
Огромное Вам спасибо! Получилось! Вот код:

iframe.html
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
<html>
<body>

<script type="text/javascript" language="JavaScript">
    function fillIrame(){
        if(!document.getElementById("iframe_el")){
            createIframe();
        }
        var iframe=document.getElementById("iframe_el");
        iframe.setAttribute("width", "500px");
        iframe.setAttribute("height","300px");

        iframe.style.visibility="visible";
    };


    function insertText(){
        var iframe=document.getElementById("iframe_el");
        var iframe_document=iframe.contentWindow.document;
        iframe_document.body.innerHTML="111111111111111111111111111111111111111111111111";
    }

    function createIframe(){
        var id="iframe_el";
        var div_out=document.getElementById("output");

        var ifr=document.createElement("iframe");
        ifr.setAttribute("style.visibility","hidden");
        ifr.setAttribute("src","wnd.html");
        ifr.setAttribute("id",id);

        div_out.appendChild(ifr);
    }

</script>
<div id="output">

</div>
<input type="button" onclick="fillIrame();"/>
</body>
</html>

wnd.html:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<html>
<script type="text/javascript" language="JavaScript">
    function insertText(){
    window.parent.insertText();
    }
</script>
<body>
</body>
<script>
        insertText();
</script>
</html>

...
Рейтинг: 0 / 0
23.12.2008, 14:53
    #35730283
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление ....
Вопрос один возник...
В показанном выше примере я добавляю iframe с присвоенными ему определенными размерами. А каким образом можно сделать так, чтобы ширина этого iframe была равна ширине страницы? Ну и чтобы она изменялась с при изменении ширины страницы? Это возможно?
...
Рейтинг: 0 / 0
23.12.2008, 15:02
    #35730296
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление ....
Вопрос отпадает... нашел, как сделать:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
    1 . function resizeTable(){  
    2 .   if (typeof(window.innerWidth) == "number") {  
    3 .     intWidth = window.innerWidth;  
    4 .     intHeight = window.innerHeight;  
    5 .   
    6 .   } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {  
    7 .     intWidth = document.documentElement.clientWidth;  
    8 .     intHeight = document.documentElement.clientHeight;  
    9 .   } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {  
   10 .     intWidth = document.body.clientWidth;  
   11 .     intHeight = document.body.clientHeight;  
   12 .   }  
   13 .   document.getElementById('contentTable').style.height = (intHeight -  300 )   "px";  
   14 . }  
   15 . window.onresize=resizeTable;  
   16 . window.onload=resizeTable;  
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Обновление .... / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]