Цитата (Zzepish @ 21.06.2012 - 01:45) |
сейчас тож JS учу потихоньку, ибо Ajax-технология нужна |
Цитата (Michael @ 21.06.2012 - 09:29) |
iframe - это больше раньше использовался, когда с аяксом были у браузеров проблемы. Но сейчас то... |
Цитата (Michael @ 21.06.2012 - 09:54) |
И пользователи получается видят этот твой ифрейм и возможно в нем работают? |
Цитата (Michael @ 21.06.2012 - 10:14) |
А ифрейм что возвращает - html разметку(включая <html></html> и т.д.), т.е. это не данные, а уже какой то результат. |
Цитата (sergeiss) |
Когда аяксом передаешь что-то, то передаешь не чистые данные, а все равно какая-то разметка (обёртка) для них есть |
Цитата (sergeiss) |
И что самое главное - аяксом тоже можно передавать данные вместе с разметкой. |
Цитата (Michael @ 21.06.2012 - 10:35) |
iframe-ы, они как отдельные окна, не вписанные в dom документа. |
<iframe id="iframe_data"
onload=
"document.getElementById( 'iframe_data' ).style.height =
document.getElementById( 'iframe_data' ).contentWindow.document.body.scrollHeight + 'px';
show_loading( false ); " ></iframe>
<script language="javascript">parent.document.getElementById( 'menu_days' ).innerHTML='<?php echo $table_day_menu; ?>'</script>
Цитата (sergeiss) |
Далее - в айфрейме тоже не обязательно разметку передавать Можно тот же json использовать |
Цитата (sergeiss) |
А как же я тогда "умудряюсь" получать данные |
Цитата (Michael @ 21.06.2012 - 11:08) |
при чем тут хедеры и куки? |
Цитата (Michael @ 21.06.2012 - 11:08) |
Обычное дело - подгружаешь новые данные и на них должны отработать существующие обработчики событий. А они отрабатывают на dom-e, а не каких то внедренных страницах. |
<iframe id="ifr1" style="display:block; width:300px; height:200px" scrolling="yes" onload="alert('Timer stopped')" ></iframe><br>
<input type="text" id="main_info" value="" />
<br /><br />
<input type="button" onclick="document.getElementById( 'ifr1' ).src='info_exchange.php?'+Math.random();" value="Show server time!" />
<?php
for( $i=1; $i<=10; $i++)
{
// передача информации на основную страницу
echo "<script language=\"javascript\">parent.document.getElementById('main_info').value='".date( 'H:i:s' )."'</script>";
// вывод данных в айфреме, чтобы видеть его содержимое и сравнить с тем, что на основной странице
echo date( 'H:i:s' ).'<br>';
flush();
ob_flush();
sleep( 1 );
}
?>
Цитата (sergeiss) |
При том, что они тоже создают определенный трафик. Только поэтому их упомянул. |
Цитата (sergeiss) |
ОК, попробуй запустить такой код |
Цитата (sergeiss) |
И... В чем проблема? Объясни, плз, где ты видишь эти ограничения? |
Цитата (Michael @ 21.06.2012 - 12:13) |
Плюс обработка события получения данных у тебя обрабатывается в получаемом коде, а должна в вызываемом. |
Цитата (Michael @ 21.06.2012 - 12:13) |
Этот html и его объекты раскиданы по iframe-ам, и обработчики СОБЫТИЙ основного окна на нем не отработают. Да и манипулирование ими намного сложнее чем эл-тами одного документа. Например подсчет всех тегов <a>. |
Цитата (sergeiss) |
Я говорю про айфрейм как про транспорт передачи информации в основное окно |
Цитата (sergeiss) |
Да, он не скрытый. То, что в нем показано, очень даже хорошо видно |
Цитата (sergeiss) |
Не совсем понял ... И тут тоже не понял |
Цитата (Michael @ 21.06.2012 - 14:52) |
итата (sergeiss) Я говорю про айфрейм как про транспорт передачи информации в основное окно а выше ты говорил:Цитата (sergeiss) Да, он не скрытый. То, что в нем показано, очень даже хорошо видно т.е. реализующий визуальный функционал, а не просто "транспорт" |
Цитата (sergeiss @ 21.06.2012 - 13:15) |
Ну... Не вижу противоречий |
Цитата (sergeiss) |
И тут тоже не понял. Я говорю про айфрейм как про транспорт передачи информации в основное окно. Как достаточно "чистой", так и с разметкой. Также и сам по себе айфрейм может содержать визуальные данные, а может быть вообще скрытым. Чем тут манипулировать ты собираешься? |
Цитата (sergeiss) |
Чем тут манипулировать ты собираешься? |
document.getElementById( 'ifr1' ).contentDocument.getElementById('inp').value
alert( document.getElementById( 'ifr1' ).contentDocument.getElementsByTagName('a').length )
Цитата (vagrand @ 21.06.2012 - 18:13) |
sergeiss А в чем для тебя смысл в этом топике? |
Цитата (bodja @ 21.06.2012 - 23:16) |
Надо покурить,может ли получить ифрейм доступ к родительскому окну самостоятельно. |
<script language="javascript">parent.document.getElementById( 'menu_days' ).innerHTML='<?php echo $table_day_menu; ?>'</script>выполняется в айфрейме, устанавливает определенные свойства определенного объекта в родительском окне.
Цитата (vagrand @ 21.06.2012 - 17:13) |
1. При помощи AJAX нельзя загрузить файл на сервер, а при помощи IFrame можно; |
Цитата (vagrand @ 21.06.2012 - 17:13) |
2. При помощи AJAX нельзя сделать кросдоменный запрос, а при помощи IFrame можно. |
Цитата (sergeiss) |
То есть, вопрос сводится к тому, как получить доступ к содержимому айфрейма из основного скрипта? |
Цитата (Sergen) |
Почитал эту ветку и не могу понять. Например, есть форма. Пользователь ее заполняет. До отправки в обработчик php, можно ли данные проверить на предмет дубликатов в базе с помощью AJAX? |
Цитата (bodja @ 22.06.2012 - 00:25) |
Проверил на кроссдомене ,доступа к фрейму через DOM нет. На своем домене есть. |
document.domain = "site.ru";
Цитата |
А чем плох iframe? |