Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как дать возможность подгружаемому фрейму быть редактируемым
 
 автор: 1prom   (08.02.2010 в 00:19)   письмо автору
 
 

Здравствуйте, помогите, пожалуйста, решить задачу:

Эта функция:


function redgive(Md) 

                JsHttpRequest.query(
                  'load.php', {'purp': "redgive"},
               function(result, errors) {document.getElementById("mem").innerHTML = errors;}
                );
                   redgo.style.display='none'; Aboutec_first.document.designMode='on';




подгружает вот этот фрейм:


<iframe name="Aboutec_first" width=500 height=145 src='javascript:document.write("<body bgcolor=white topmargin=1 leftmargin=2>");document.close();'></iframe>


<script src="lib/JsHttpRequest/JsHttpRequest.js"></script>
<script language="JavaScript">
 Aboutec_first.document.designMode='on';
 document.Aboutec_first.document.open();
 document.Aboutec_first.document.write('<?echo"$M5";?>');
 document.Aboutec_first.document.close();
</script>


Как сделать так чтобы он был редактируемым и там содержалось значение <?echo"$M5";?>


Спасибо заранее

  Ответить  
 
 автор: АЯ   (08.02.2010 в 04:43)   письмо автору
 
   для: 1prom   (08.02.2010 в 00:19)
 

У вас написано уж очень много глупостей, вы уж не обижайтесь на правду :-)

Разберу только пару.
Во-первых, ваше неверное представление о методе document.write ()

Метод document.write () работает в двух РАЗНЫХ условиях ПО-РАЗНОМУ:
1) при использовании в момент формирования документа этот метод ДОПОЛНИТЕЛЬНО ВПИСЫВАЕТ в формирующийся документ то, что указано в его круглых скобках.
2) при использования этого метода в уже сформированном документе он ПОЛНОСТЬЮ ЗАМЕНЯЕТ сформированный документ на то, что указано в его круглых скобках.

Для усвоения запустите в браузере:
<html><body bgcolor="silver">
<h1>String #1</h1>

   <script>
   (function ()
   {
   document.open ();
   document.write ('<h1>String #2</h1>');
   document.close (); 
   }) ();
   </script>

<h1>Syting #3</h1>
</body></html>
Сколько строк видите на странице? Правильно - три штуки: №1, №2 и №3.
Какой фон у этой страницы? Правильно - серый.
Потому что метод document.write () работал в момент формирования документа и он ДОПОЛНИТЕЛЬНО ВПИСАЛ в документ строку №2 в том месте, где и был прописан этот метод.

А теперь запустите чуть изменённый код код:
<html><body bgcolor="silver">
<h1>String #1</h1>

   <script>
   onload = function ()
   {
   document.open ();
   document.write ('<h1>String #2</h1>');
   document.close (); 
   }
   </script>

<h1>Syting #3</h1>
</body></html>
Страница стала иметь белый фон и в ней всего одна строка.
Потому что СНАЧАЛА закончилось формирование документа и ПОСЛЕ ЭТОГО (по событию onload) метод document.write () ПОЛНОСТЬЮ ЗАМЕНИЛ документ на одну-единственную строку.

-----------
Ваше прописанное у ифрейма src='javascript:document.write("<body bgcolor=white topmargin=1 leftmargin=2>");document.close();' совершенно бессмысленно, та как последующее использование метода document.write () полностью уничтожит и ваш белый фон, и прописанные вами маргины.
Более того, и прописанное вами ПЕРЕД использованием document.write () свойство designMode='on'; - оно ведь тоже исчезнет. Метод document.write () заменяет документ ПОЛНОСТЬЮ, вместе со всеми ранее предустановленными свойствами.

Понятно?
----------

Во-вторых, вы неверно обращаетесь к документу в ифрейме - прочтите ликбез, надеюсь, вам станет ясно - где именно вы ошиблись.
----------

Есть и ещё ошибки.
Но о них - потом: "рука бойца стучать устала" (с)
:-)

  Ответить  
 
 автор: 1prom   (08.02.2010 в 15:53)   письмо автору
 
   для: АЯ   (08.02.2010 в 04:43)
 

Познавательно, АЯ.
Все нормально, я люблю критику, так как на самокритику еще не способен ;))

Значит, пишу:

function redgive(Md)  
{  
                JsHttpRequest.query( 
                  'load.php', {'purp': "redgive"}, 
               function(result, errors) {document.getElementById("mem").innerHTML = errors;} 
                ); 
                   redgo.style.display='none'; 
}  


<iframe name="Aboutec_first" width=500 height=145></iframe> 


<script src="lib/JsHttpRequest/JsHttpRequest.js"></script> 
<script language="JavaScript"> 

document.getElementById ('Aboutec_first').open();  
document.getElementById ('Aboutec_first').write('<?=$M5?>'); 
document.getElementById ('Aboutec_first').designMode='on'; 
document.getElementById ('Aboutec_first').close(); 

</script>


Жаль только, что я сейчас на работе и не могу запустить скрипты - приду домой попробую, а вы может еще найдете, тем временем кучу ошибок :))

  Ответить  
 
 автор: АЯ   (09.02.2010 в 03:55)   письмо автору
 
   для: 1prom   (08.02.2010 в 15:53)
 

А вы точно сходили по ссылке, которую я вам давал?
Сложилось впечатление, что вы вместо прямого перехода поискали гуглем слово "ликбез" и нашли там сайт о реальной ликвидации безграмотности в 20-е годы ХХ-го столетия и теперь поделились с нами вашим "новым знанием" :-)

Я вам написал, что "вы неверно обращаетесь к документу в ифрейме", а вы после этого взяли, да и вовсе удалили документ из своего обращения :-))

В общем, я подожду, пока вы уйдете домой со своей "удивительной работы", где заходить на форум под своим никнеймом вы можете (а это обеспечивает в том числе и яваскрипт на этой странице) и одновременно у вас "скрипты не работают" :-)

  Ответить  
 
 автор: 1prom   (10.02.2010 в 00:52)   письмо автору
 
   для: АЯ   (09.02.2010 в 03:55)
 

да, сходил... просто я для себя решил, что нахожусь не в ифрейме :))
Я чуток изменил подход редактирования... фрейм уже грузится по умолчанию... но его редактирование происходит только при функции function redgive() - так, мне кажется, работает скрипт быстрее для пользователя


function redgive() { red_div.style.display='block';     red_iframe.document.designMode='On';} 





    <DIV class=rightCol505 id=red_div  style="display: none;">
    <DIV class=white><div>
    <DIV class=l>
    <DIV class=t>
    <DIV class=r>
    <DIV class=tl>
    <DIV class="tr titlesm">Редактирование записи</DIV></DIV></DIV></DIV></DIV></DIV>

    <div class="l">
    <div class="b">
    <div class="r">
    <div class="bl">
    <div class="br">
<br>
<center>

<iframe name=red_iframe width=500 height=195 src='javascript:document.write("<body bgcolor=white topmargin=1 leftmargin=2><?=$M5?>"); document.close();'></iframe>


<INPUT TYPE="button" onClick="redsave('<?=$M6?>')" VALUE="Редактировать">
</center>


<br>
<DIV id=sml0_red display:'yes'>
<center><a onclick=sml_red('default','ua')><b>Смайлики</b></a></DIV>
<div id="sml_red"><br>

</div>


</div></div></div></div></div></div></div><br>

  Ответить  
 
 автор: АЯ   (10.02.2010 в 01:15)   письмо автору
 
   для: 1prom   (10.02.2010 в 00:52)
 

Вы куда опять ходили? Что за бред у вас написан?
function redgive() { red_div.style.display='block';     red_iframe.document.designMode='On';}  - БРЕД
---

Правильно должно быть так:
function redgive () {document.getElementById ('red_div').style.display = 'block'; window.frames ('red_iframe').document.designMode = 'On';}  


И что такое здесь 'yes'?
<DIV id=sml0_red display:'yes'> 

Вы прям как в песне - "Руссо матросо, ёби-ёби, окей,окей" :-)

  Ответить  
 
 автор: 1prom   (10.02.2010 в 02:01)   письмо автору
 
   для: АЯ   (10.02.2010 в 01:15)
 

display:'yes' - согласен - это лишнее

программирование - это мое хобби, а не работа.
я пишу не как правильно, а как работает... у мня на разных броузерах все вроде идет и скрипт мне воспинимается легче так как он короче.

Но тогда у меня ответный вопрос, как может "моя неправильность" повлиять на работу страницы?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования