|
|
|
| Здравствуйте, помогите, пожалуйста, решить задачу:
Эта функция:
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";?>
Спасибо заранее | |
|
|
|
|
|
|
|
для: 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 () заменяет документ ПОЛНОСТЬЮ, вместе со всеми ранее предустановленными свойствами.
Понятно?
----------
Во-вторых, вы неверно обращаетесь к документу в ифрейме - прочтите ликбез, надеюсь, вам станет ясно - где именно вы ошиблись.
----------
Есть и ещё ошибки.
Но о них - потом: "рука бойца стучать устала" (с)
:-) | |
|
|
|
|
|
|
|
для: АЯ
(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>
|
Жаль только, что я сейчас на работе и не могу запустить скрипты - приду домой попробую, а вы может еще найдете, тем временем кучу ошибок :)) | |
|
|
|
|
|
|
|
для: 1prom
(08.02.2010 в 15:53)
| | А вы точно сходили по ссылке, которую я вам давал?
Сложилось впечатление, что вы вместо прямого перехода поискали гуглем слово "ликбез" и нашли там сайт о реальной ликвидации безграмотности в 20-е годы ХХ-го столетия и теперь поделились с нами вашим "новым знанием" :-)
Я вам написал, что "вы неверно обращаетесь к документу в ифрейме", а вы после этого взяли, да и вовсе удалили документ из своего обращения :-))
В общем, я подожду, пока вы уйдете домой со своей "удивительной работы", где заходить на форум под своим никнеймом вы можете (а это обеспечивает в том числе и яваскрипт на этой странице) и одновременно у вас "скрипты не работают" :-) | |
|
|
|
|
|
|
|
для: АЯ
(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>
|
| |
|
|
|
|
|
|
|
для: 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'>
|
Вы прям как в песне - "Руссо матросо, ёби-ёби, окей,окей" :-) | |
|
|
|
|
|
|
|
для: АЯ
(10.02.2010 в 01:15)
| | display:'yes' - согласен - это лишнее
программирование - это мое хобби, а не работа.
я пишу не как правильно, а как работает... у мня на разных броузерах все вроде идет и скрипт мне воспинимается легче так как он короче.
Но тогда у меня ответный вопрос, как может "моя неправильность" повлиять на работу страницы? | |
|
|
|