Динамическое добавление вызова функции в тег

Тема в разделе "HTML, CSS, XML, JavaScript", создана пользователем Lesik198199, 22 фев 2006.

Статус темы:
Закрыта.
  1. Lesik198199

    Lesik198199 Гость

    Пытаюсь динамически прикрепить скрипт к документу, загруженному во фрейм, с помощью innerHTML.
    Функция заключается в том, что по клику на любой элемент документа, загруженного во фрейм, возвращается id этого
    элемента в переменную, описанную в родительском документе. Вызов функции прикрепляю к тегу боди документа, загруженного во фрейм.
    Проблема в том, что написано вроде верно, а рабоать не работает..голову сломала, не вижу ошибки..Может кто поможет...Спасибо!
    HTML:
    <html>
    <head>
    <script language="JavaScript">
    var t=799;
    <!--
    function Пример(){
    var s;
    b=frames['MyIFRAME'].document;
    b.body.innerHTML=b.body.innerHTML+'<script language="JavaScript">function element(){var ElemEv;ElemEv=self.event.srcElement.id; alert(self.parent.t)}</script>';
    s=b.body.outerHTML.substring(1, 5) +' onclick="element()">';
    b.body.outerHTML = s + b.body.innerHTML+'</body>';

    }
    -->
    </script>
    </head>
    <body>

    <iframe name="MyIFRAME" src="proba.htm" onload="Пример()"></iframe>

    </body>
    </html>
     
  2. Andrew Stephanoff

    Andrew Stephanoff Гость

    Попробуй реализовать через DOM.
     
  3. Lesik198199

    Lesik198199 Гость

    <!--QuoteBegin-Andrew Stephanoff+23:02:2006, 09:36 -->
    <span class="vbquote">(Andrew Stephanoff @ 23:02:2006, 09:36 )</span><!--QuoteEBegin-->Попробуй реализовать через DOM.
    [snapback]30978" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    А поподробнее можно, пожалуйста?
     
  4. Andrew Stephanoff

    Andrew Stephanoff Гость

    Лучше определи свою функцию во внешнем файле и подключай так:
    Код (Text):
    ...
    var oScript = document.createElement("SCRIPT");
    oScript.type = "text/javascript";
    oScript.src = "path/to/script";
    document.getElementsByTagName("BODY")[0].appendChild(oScript);
    ...
    но можно генерировать и на лету
    Код (Text):
    ...
    var oScript = document.createElement("SCRIPT");
    oScript.type = "text/javascript";
    oScript.text = "alert(\"Halo, world!\");";
    document.getElementsByTagName("BODY")[0].appendChild(oScript);
    ...
     
  5. Guest

    Guest Гость

    Вот работающий пример:

    КОД IFRAME:
    Код (Text):
    <HTML>
    <HEAD>
    <TITLE></TITLE>

    </HEAD>

    <BODY>
    <DIV id="conteiner"></DIV>
    </BODY>
    </HTML>
    КОД СТРАНИЦЫ:
    Код (Text):
    <html>
    <head>
    <script language="JavaScript">
    var t=799;

    function Test(){
    var t=799;

    b=document.frames?document.frames['MyIFRAME']:document.getElementById("MyIFRAME").contentWindow;

    d = ' ' + '<sc' + 'ript>function element(){alert(t)}' +
    'element();</sc' + 'ript>' + ' ';

    h = d.replace(/<\/?script>/gi,"\07").replace(/\07[^\07]+\07/g,"");
    a = ("\07"+
    d.replace(/<\/script[^>]*>/gi,"\07").replace(/<\bscript>/gi,"\06")+
    "\06").replace(/\07[^\06]+\06/g,"");

    eval(a);

    b.document.getElementById('conteiner').innerHTML=h;


    }

    </script>
    </head>
    <body>

    <iframe id="MyIFRAME" name="MyIFRAME" src="proba.html" onload="Test()"></iframe>

    </body>
    </html>
     
  6. scuter

    scuter Гость

    У меня похожая проблема
    я прикрепляю к элементу фрейма функцию,
    всё работает до тех пор пока в него не начнёт загружаться новая страница,
    на обычных страницах проблема решаема просто надо перезагрузить страницу,
    но в диалоговых окнах (showModalDialog) ничего не получается сраницы просто не хотят перезагружаться помогите пожалуйста решить эту проблему!!!!
    Код (Text):
    <html>
    <head>
    <script type="text/javascript">
    function fresh()
    {
    if (frames.sitemenu.event.srcElement.className == "a")
    {
    document.getElementById("test").value = frames.sitemenu.event.srcElement.id;
    }
    }
    function generfun()
    {
    window.execScript("document.frames.sitemenu.document.attachEvent('onclick', function(){fresh()});", "Javascript");
    }
    </script>
    </head>
    <body>
    <input type="text" size="50" id="test" value="" /><br>
    <iframe width="200px" height="620px" src="menu.php" name="sitemenu" id="sitemenu"></iframe>
    </body>
    </html>
     
Загрузка...
Похожие Темы - Динамическое добавление вызова
  1. iosif88
    Ответов:
    32
    Просмотров:
    9.903
  2. iosif88
    Ответов:
    21
    Просмотров:
    7.330
  3. JohnLemon
    Ответов:
    4
    Просмотров:
    1.165
  4. Katyha1706
    Ответов:
    1
    Просмотров:
    1.454
  5. Katyha1706
    Ответов:
    0
    Просмотров:
    1.110
Статус темы:
Закрыта.

Поделиться этой страницей