iframe и jquery

Тема в разделе "Другие языки", создана пользователем Dj_StelS, 13 дек 2010.

Статус темы:
Закрыта.
Модераторы: Цукер
  1. Dj_StelS

    Dj_StelS

    Регистр.:
    9 янв 2009
    Сообщения:
    349
    Симпатии:
    79
    Есть index.php в котором создается iframe с помощью jquery:
    Код:
    setTimeout(function(){
    			iframe("url.php");
    		}, 500);
    function iframe(src){
    $('<iframe>').attr('id', 'iframe')
    		.css({
    			position: 'absolute',
    			top: 0,
    			left: 0,
    			visibility: 'hidden',
    			display: 'none'
    		})
    		.attr('src', src)
    		.appendTo('#iframes');
    		
    }
    в url.php:
    PHP:
        echo '<script language="JavaScript">$("#body").append("11");</script>';
    но почему то в тело #body не добавляется текст 11...
    Пробывал уже так:
    PHP:
        echo '<script language="JavaScript">$("#body").parent().append("11");</script>';
    но всё равно не работает.
    подскажите в чем ошибка?
     
  2. alica

    alica

    Регистр.:
    28 июл 2008
    Сообщения:
    243
    Симпатии:
    76
    Ошибка в том, что $("#body").append("11"); просто так изменять документ не будет если его нет в $.documents.
     
  3. Dj_StelS

    Dj_StelS

    Регистр.:
    9 янв 2009
    Сообщения:
    349
    Симпатии:
    79
    непонял,
    Код:
     $(document).ready(function() {
    setTimeout(function(){
    			iframe("url.php");
    		}, 500);
    function iframe(src){
    $('<iframe>').attr('id', 'iframe')
    		.css({
    			position: 'absolute',
    			top: 0,
    			left: 0,
    			visibility: 'hidden',
    			display: 'none'
    		})
    		.attr('src', src)
    		.appendTo('#iframes');
    }
     });
    так не выходит, и так
    PHP:
    echo '<script language="JavaScript">$(document).ready(function() {$("#chat_body").append("11"); });</script>';
    или я что то неправильно понял? сорри, но я jquery только начал изучать
     
  4. alica

    alica

    Регистр.:
    28 июл 2008
    Сообщения:
    243
    Симпатии:
    76
    Во фрейме тоже должен быть подгружен jquery, а там через parents() и contents() манипулировать главным элементом, а получится или нет это еще вопрос.
     
  5. Dj_StelS

    Dj_StelS

    Регистр.:
    9 янв 2009
    Сообщения:
    349
    Симпатии:
    79
    подгрузил jquery, попробывал с parents() и contents() резульятата 0
    Самое необъяснимое для меня:
    PHP:
    echo '<script language="JavaScript">parent.document.getElementById("body").innerHTML = "11";</script>';
    работает.
    Но мне надо именно через jquery
    Может кто еще поможет?
     
  6. Conwell

    Conwell

    Регистр.:
    23 мар 2009
    Сообщения:
    337
    Симпатии:
    177
    Такое не будет работать, потому что вы пытаетесь выбрать пустой элемент $('<iframe>') - такого никогда не будет, а вот такой будет: $('iframe')
     
  7. Dj_StelS

    Dj_StelS

    Регистр.:
    9 янв 2009
    Сообщения:
    349
    Симпатии:
    79
    если сделать так - то загрузка вобще не начинается.
    ведь функция iframe динамически создаёт ифреймы и вставляет их в див #iframes
     
  8. Conwell

    Conwell

    Регистр.:
    23 мар 2009
    Сообщения:
    337
    Симпатии:
    177
    Назовите функцию по другому, а не так как элемент HTML-разметки, будет проще :)
     
  9. Dj_StelS

    Dj_StelS

    Регистр.:
    9 янв 2009
    Сообщения:
    349
    Симпатии:
    79
    что то изменится?)) Я не думаю, но раз так проще будет, то еще раз объясняю:)
    index.php
    HTML:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title>Главная</title>
    <link href="style.css" rel="stylesheet" type="text/css">
    <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript">
     $(document).ready(function() {
    setTimeout(function(){
    			iframe1("url.php");
    		}, 500);
    function iframe1(src){
    $('<iframe>').attr('id', 'iframe1')
    		.css({
    			position: 'absolute',
    			top: 0,
    			left: 0,
    			visibility: 'hidden',
    			display: 'none'
    		})
    		.attr('src', src)
    		.appendTo('#iframes');
    		
    }
     });
    </script>
    </head>
    
    <body>
    <div id="body"></div>
    
    <div id="iframes"></div>
    
    </body>
    </html>
    url.php
    HTML:
    <?php set_time_limit(0);
    while (@ob_end_flush()) {}
    ob_implicit_flush(1);
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title>Документ без названия</title>
    <script type="text/javascript" src="js/jquery.js"></script>
    </head>
    
    <body>
    <?php
      while(true) {
        
    	echo '<script language="JavaScript">$("#body").append("11");</script>';
        sleep(1);
      }
     
    ?>
    </body>
    </html>
    
    почему не выводит 11?
     
  10. Conwell

    Conwell

    Регистр.:
    23 мар 2009
    Сообщения:
    337
    Симпатии:
    177
    а где у вас в url.php элемент с ID=body? выводится то будет применительно к тому документу внутри которого запускается скрипт.
     
Статус темы:
Закрыта.