Кодировка HTML | Демо-сайт CMS uCoz | Почта

AJAX окно

Архив полностью рабочих скриптов и так далее...

AJAX окно

Сообщение AllCity » 01 июл 2008, 22:34

Итак, есть в системе UcoZ некоторые AJAX окна. Вот такие:
Изображение
И вы вдруг захотели такое же. Это просто.
1. Закачайте на свой сайт файл openLayerA.js с архива и подключите его:
Код: Выделить всё
<script type="text/javascript" src="Путь к скрипту"></script>

openLayerA.zip
(3.35 Кб) Скачиваний: 1159

2. Теперь вам надо сделать ссылки со следующим атрибутом href:
Код: Выделить всё
javascript:openLayerA('obsv','http://win32.ucoz.net/index/0-3','Обратная связь','500','400','no');

Где:
- obsv - латинское название (любое) (нигде не отображается) (все названия должны быть разными)
- http://win32.ucoz.net/index/0-3 - адрес страницы, которую необходимо загрузить
- Обратная связь - название окна
- 500 - ширина
- 400 - высота
- no - наличие scrolling'ов.

no - нет полос прокрутки, auto - полосы прокрутки отображаются в случае необходимости (рекомендуемый вариант), yes - принудительное появление полос прокрутки (не рекомендуется).
Цветовая гамма окна задаётся в настройках сайта

Аватара пользователя
AllCity
Администратор
Администратор
 
Автор темы
Сообщения: 2505
Возраст: 30
Зарегистрирован: 18 апр 2008, 17:52
Карма: + 147 -
Откуда: Израиль, Тель-Авив

Re: AJAX окно

Сообщение AllCity » 01 июл 2008, 22:39

Я порылся в Панели Управления, и накопал в исходнике текст:
Код: Выделить всё
openLayerB('HelpWd',0,'http://win32.ucoz.net/panel/?a=help;t=19','Помощник',350,150,'1','','',0,'justify');

Это выполняется по щелчку по байтам где дисковое постранство. Ввёл я это в адресную строку, и нажал Enter. Стало быть, открылась эта же помощь.
Я попытался изменить адрес
Код: Выделить всё
javascript:openLayerB('HelpWd',0,'http://win32.ucoz.net/','Помощник',350,150,'1','','',0,'justify');

Как и предпологалось, Server connection Error. Sorry.
Затем, открыв файл http://win32.ucoz.net/panel/?a=help;t=19 , я нашёл там следующий текст:
Код: Выделить всё
<?xml version="1.0" encoding="UTF-8"?><ajax><cmd t="layerContentHelpWd" p="innerHTML"><![CDATA[Дисковое пространство увеличивается с каждой секундой существования сайта. Чем больше посетителей на сайте, тем быстрее увеличивается дисковое пространство.<br><br>Дисковое пространство <b>неограниченно</b>.]]></cmd></ajax>

узнаёте? И я предположил, что можно писать такие интересные штучки самому.
Хотя, я это очень давно предполагал, и даже делал попытки написать. Кстати, тогда получалось!
Собственно, HelpWd - вот название слоя.
Код: Выделить всё
<?xml version="1.0" encoding="UTF-8"?><ajax><cmd t="layerContentAbc" p="innerHTML"><![CDATA[Привет! Как дела?<br>Текст...]]></cmd></ajax>

И в каком формате эту белеберду сохранить? Я решил - без разницы, потому сохранил в txt.
http://win32.ucoz.net/ajax.txt
Предположения мои оправдались. Вызвав
Код: Выделить всё
javascript:openLayerB('Abc',0,'http://win32.ucoz.net/ajax.txt','Просто текст',350,150,'1','','',0,'justify');

я увидел
Изображение
Вот так.
Но я решил не останавливаться, и пойти далее. А конкретно - попытаться создать несколько "файлов" в одном.
Код: Выделить всё
<?xml version="1.0" encoding="UTF-8"?><ajax><cmd t="layerContentAbc" p="innerHTML"><![CDATA[Привет! Как дела?<br>Текст...]]></cmd> <cmd t="layerContentAsd" p="innerHTML"><![CDATA[Уже другой текст... <br>текст...]]></cmd></ajax>

И получилось!
Код: Выделить всё
javascript:openLayerB('Abc',0,'http://win32.ucoz.net/ajax2.txt','Просто текст',350,150,'1','','',0,'justify');

+
Код: Выделить всё
javascript:openLayerB('Asd',0,'http://win32.ucoz.net/ajax2.txt','Просто текст2',350,150,'1','','',0,'justify');

Изображение
Вот так.
Шаг третий - я попытаюсь создать динамическую страницу с такими AJAX'овскими текстами. Включив туда UcoZ'овские коды - а именно почтовую форму. И, конечно, копирайт powered_by.
Шаблон (от содержимого страницы я отказался):
Код: Выделить всё
<?xml version="1.0" encoding="UTF-8"?><ajax><cmd t="layerContentAbc" p="innerHTML"><![CDATA[Почтовая форма: $MFORM_1$ $POWERED_BY$]]></cmd></ajax>

Код: Выделить всё
javascript:openLayerB('Abc',0,'http://win32.ucoz.net/index/0-11','Динамическая страница',350,150,'1','','',0,'justify');

Результат: Server connection Error. Sorry. sad
Открыв код страницы, я увидел там:
Код: Выделить всё
<style type="text/css">.cuzadpn {position:absolute;top:0px;left:0px;width:100%}div > div.cuzadpn {position:fixed;}</style>
<!--[if gte IE 5.5]><![if lt IE 8]><style type="text/css">div#uzadpn {width:expression(((ignoreMe=(document.documentElement.clientWidth?document.documentElement.clientWidth:document.body.clientWidth))<200?200: ignoreMe)+'px');position:absolute;top:expression((ignoreMe2=document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop)+'px');left:expression((ignoreMe=document.documentElement.scrollLeft?document.documentElement.scrollLeft:document.body.scrollLeft)+'px');}</style><![endif]><![endif]-->
<link type="text/css" rel="StyleSheet" href="http://src.ucoz.net/src/layer3.css" />
<script type="text/javascript" src="http://src.ucoz.net/src/admMenu.js"></script>
<div id="puzadpn" align="left">
<div class="cuzadpn" id="uzadpn" style="z-index:10000;" onmousedown="_showOnTop('uzadpn',1)">
<script type="text/javascript">function achgroup(v){document.cookie = "ewin32uz47="+escape(v)+";path=/;";window.location.reload();}</script>
<div id="admPageVars" style="position:absolute;z-index:12001;display:none;" class="admBarMenu">
<div class="xw-tl"><div class="xw-tr"><div class="xw-tcc"></div></div></div><div class="xw-ml"><div class="xw-mr"><div class="xw-mc">
<table border="0" cellpadding="3" cellspacing="1"><tr><td>$URI_ID$</td><td>   
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Часть кода вырезана~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<div class="admBarM"><a href="http://forum.ucoz.com/" target="_blank">Форум тех. поддержки</a></div>
<div class="admBarM"><a href="http://faq.ucoz.com" target="_blank">Частые вопросы и ответы</a></div>
</div></div></div><div class="xw-bl"><div class="xw-br"><div class="xw-bc"><div class="xw-footer"></div></div></div></div>
</div><script type="text/javascript">init_menu1('admBarM4');</script>

</div></div>
<script type="text/javascript">document.getElementById("puzadpn").style.height=24+'px';</script>
<?xml version="1.0" encoding="UTF-8"?><ajax><cmd t="layerContentAbc" p="innerHTML"><![CDATA[Почтовая форма: <script type="text/javascript">var sblmb1=0;function funiK3eh(){try {var tr=checksubmit();if(!tr){return false;}}catch(e){}if (sblmb1==1){return false;}sblmb1=1;
                    openLayerB('sendMFe1','fiK3eh','http://win32.ucoz.net/mail/','<b>Отправка сообщения</b>',350,150,'','','1');}</script><form method="post" name="mform" id="fiK3eh" style="margin:0"  onsubmit="funiK3eh();return false;"><input type="hidden" name="jkd498" value="1"><input type="hidden" name="jkd428" value="1"><table border="0" width="100%" id="table1" cellspacing="1" cellpadding="2">
<tr><td width="35%">Имя отправителя <font color="red">*</font>:</td><td><input class="textMailForm" type="text" name="f4" size="30" style="width:95%;" maxlength="70"> </td></tr>
<tr><td>E-mail отправителя <font color="red">*</font>:</td><td><input class="textMailForm" type="text" name="f1" size="30" style="width:95%;" maxlength="70"> </td></tr>
<tr><td>Тема письма <font color="red">*</font>:</td><td><input type="text" class="textMailForm" name="f2" size="30" style="width:95%;" maxlength="70"> </td></tr>
<tr><td>Текст сообщения <font color="red">*</font>:</td><td><textarea rows="7" class="textMailForm" name="f3" cols="30" style="width:95%;"></textarea> </td></tr>
<tr><td>Оценка сайта:</td><td><select size="1" class="selectMailForm" name="f6"><option></option> <option>Отлично, так держать!</option> <option>Хорошо.</option> <option>Неплохо...</option> <option>Так себе...</option> <option>Ужас, да и только!</option></select></td></tr>
<tr><td>Код безопасности <font color="red">*</font>:</td><td><input class="textMailForm" type="text" name="f7" size="4" maxlength="4" style="text-align:center;"> <img style="margin:0;padding:0;border:0;" id="secuImgM" align="absmiddle" src="http://win32.ucoz.net/secure/12-0-1213765182" /></td></tr>
<tr><td colspan="2" align="center">
<input class="manFlSbm" type="submit" value="Отправить сообщение"></td></tr>
</table><input type="hidden" name="id" value="1" /><input type="hidden" name="a" value="1" /><input type="hidden" name="o" value="1" /></form> Используются технологии <a href="http://www.ucoz.ru/" title="Hosted by UcoZ (s16)"><b>UcoZ</b></a>]]></cmd></ajax>
<!-- 0.00696 (s16) -->

Туда напихались просто множество дополнительных кодов. Отсюда и результат...
Вывод: нам, простым смертным, поиграться с прибамбасами Ucoz'a не удастся.

Аватара пользователя
AllCity
Администратор
Администратор
 
Автор темы
Сообщения: 2505
Возраст: 30
Зарегистрирован: 18 апр 2008, 17:52
Карма: + 147 -
Откуда: Израиль, Тель-Авив

вопрос по AJAX окну (ломаю голову)

Сообщение XxMARSxX » 15 июл 2008, 19:13

собственно вопрос по AJAX, а не по псевдо AJAX...

не догоню как вставить скрипт из файла...

нужный кусок кода
Код: Выделить всё
function ParseXML(xml) {xml = xml.documentElement;
if (xml == null) { alert("Server connection Error. Sorry."); }
try{if(_resID){document.getElementById('myWinCont'+_resID).style.visibility='hidden';}}catch(e){}
for (var i = 0; i < xml.childNodes.length; i++) {
if (xml.childNodes[i].nodeName == "cmd"){ var cmd; var target; var data;
for (var j=0; j<xml.childNodes[i].attributes.length; j++) {
if (xml.childNodes[i].attributes[j].name == "p") { cmd = xml.childNodes[i].attributes[j].value;}
if (xml.childNodes[i].attributes[j].name == "t") { target = xml.childNodes[i].attributes[j].value; }}
if (xml.childNodes[i].firstChild.data ) { data = xml.childNodes[i].firstChild.data; } else { data = ''; }
if (cmd=='innerHTML'){try{document.getElementById(target).innerHTML = data;}catch(e){} }
else if (cmd=='+innerHTML'){ try{document.getElementById(target).innerHTML=data+document.getElementById(target).innerHTML;}catch(e){} }
else if (cmd=='innerHTML+'){ try{document.getElementById(target).innerHTML+=data;}catch(e){} }
else if (cmd=='innerHTMLspanAll'){ var tt=GetSpanByClass(target);for (var oo=0;oo<tt.length;oo++){try{tt[oo].innerHTML=data;}catch(e){} } }
else if (cmd=='innerHTMLdivAll'){ var tt=GetDivByClass(target);for (var oo=0;oo<tt.length;oo++){try{tt[oo].innerHTML=data;}catch(e){} } }
else if (cmd=='value'){ try{document.getElementById(target).value=data;}catch(e){} }
else if (cmd=='jsa'){includeJSfile(data,target);}
else if (cmd=='js'){ eval(data); }
}}
try{if(_resID){_chLctSize(_resID)}}catch(e){}
}
var gotXML = function(o){ParseXML(o.responseXML); }
var failedResponse = function(o) {if (_is_log_form){try {_show_log_form();} catch(e){window.location.reload();}}else {window.location.reload();}}
var callback = {success: gotXML, failure: failedResponse }
var callbacku = {upload: gotXML}

function includeJSfile(src,id){
if (document.getElementById(id)){return;}
var js = document.createElement('script');
js.setAttribute('type','text/javascript');
js.setAttribute('id',id);
js.setAttribute('src',src);
var head = document.getElementsByTagName('head').item(0);
head.appendChild(js);   
}


если присмотреться внимательней то видно, что просто код вставляется так:
Код: Выделить всё
<cmd p="js">
 я код
</cmd>

а файл вставлять такЪ
Код: Выделить всё
<cmd p="jsa"...

только вот куда ссылку вставлять и как сделать именно что бы для этой части кода а не для всего xml файла

у кого есть соображения?
Ахтунг!

Делаю всякую херню для ЮкОз за доллары или не делаю если просьба пахнет бредом перегретого мозга.

А у меня Windows 7 :P

Изображение
Что такое НЕТЕЛИБ?
Аватара пользователя
XxMARSxX
Супермодератор
Супермодератор
 
Сообщения: 1991
Возраст: 33
Зарегистрирован: 20 апр 2008, 18:02
Карма: + 22 -
Откуда: Украина, Полтавская область, Кременчуг, Автозаводской район, Нагорная часть

Re: вопрос по AJAX окну (ломаю голову)

Сообщение AllCity » 16 июл 2008, 02:29

Объясни что именно тебе надо а то я не понял.
Аватара пользователя
AllCity
Администратор
Администратор
 
Автор темы
Сообщения: 2505
Возраст: 30
Зарегистрирован: 18 апр 2008, 17:52
Карма: + 147 -
Откуда: Израиль, Тель-Авив

Re: вопрос по AJAX окну (ломаю голову)

Сообщение XxMARSxX » 16 июл 2008, 10:47

AllCity писал(а):Объясни что именно тебе надо а то я не понял.
ща попробую на пальцах

как на обычной странице вставить яваскрипт?
так:
Код: Выделить всё
<script type="text/javascript">
я код
я код
я код
</scrip>

в сплывающем AJAX окне точно это же вставляется так:
Код: Выделить всё
<cmd p="js">
я код
я код
я код
</cmd>

это понятно, поехали дальше...
на обычной странице яваскрипт из файла вставляется так:
Код: Выделить всё
<script type="text/javascript" src="http://САЙТ/КАТАЛОГ/ФАЙЛ.js"></script>

так вот в AJAX окне можно оказывается тоже вставить яваскрипт из файла....
<cmd p="jsa"...

только вот куда ссылку вставлять и как сделать именно что бы для этой части кода а не для всего xml файла
(понять это можно из кода в первом сообщении)
Ахтунг!

Делаю всякую херню для ЮкОз за доллары или не делаю если просьба пахнет бредом перегретого мозга.

А у меня Windows 7 :P

Изображение
Что такое НЕТЕЛИБ?
Аватара пользователя
XxMARSxX
Супермодератор
Супермодератор
 
Сообщения: 1991
Возраст: 33
Зарегистрирован: 20 апр 2008, 18:02
Карма: + 22 -
Откуда: Украина, Полтавская область, Кременчуг, Автозаводской район, Нагорная часть

Re: вопрос по AJAX окну (ломаю голову)

Сообщение AllCity » 16 июл 2008, 11:24

<?xml version="1.0" encoding="UTF-8"?><ajax><cmd p="js"><![CDATA[Здесь ставим JavaScript]]></cmd><cmd t="layerContentНазвания слоя" p="innerHTML"><![CDATA[Здесь ставим HTML]]></cmd></ajax>

Пробуй должно работать.
А с файла не знаю надо поискать :) а то самому нужно било.
Аватара пользователя
AllCity
Администратор
Администратор
 
Автор темы
Сообщения: 2505
Возраст: 30
Зарегистрирован: 18 апр 2008, 17:52
Карма: + 147 -
Откуда: Израиль, Тель-Авив

Re: вопрос по AJAX окну (ломаю голову)

Сообщение XxMARSxX » 16 июл 2008, 13:11

это я знал, просто CDATA забыл
а на счет второго я уже допер:
<?xml version="1.0" encoding="UTF-8"?>
<ajax>
<cmd t="layerContentIDСлоя" p="innerHTML"><![CDATA[
HTML КОД
]]></cmd>
<cmd t="IDСлоя" p="jsa"><![CDATA[
http://САЙТ/КАТАЛОГ/ФАЙЛ.js
]]></cmd>
</ajax>
Ахтунг!

Делаю всякую херню для ЮкОз за доллары или не делаю если просьба пахнет бредом перегретого мозга.

А у меня Windows 7 :P

Изображение
Что такое НЕТЕЛИБ?
Аватара пользователя
XxMARSxX
Супермодератор
Супермодератор
 
Сообщения: 1991
Возраст: 33
Зарегистрирован: 20 апр 2008, 18:02
Карма: + 22 -
Откуда: Украина, Полтавская область, Кременчуг, Автозаводской район, Нагорная часть

Re: вопрос по AJAX окну (ломаю голову)

Сообщение AllCity » 16 июл 2008, 13:42

О спасибо сейчас проверю надеюсь это работает.
Аватара пользователя
AllCity
Администратор
Администратор
 
Автор темы
Сообщения: 2505
Возраст: 30
Зарегистрирован: 18 апр 2008, 17:52
Карма: + 147 -
Откуда: Израиль, Тель-Авив

Re: вопрос по AJAX окну (ломаю голову)

Сообщение XxMARSxX » 16 июл 2008, 13:52

AllCity писал(а):О спасибо сейчас проверю надеюсь это работает.

Уже Проверено! ;)
Ахтунг!

Делаю всякую херню для ЮкОз за доллары или не делаю если просьба пахнет бредом перегретого мозга.

А у меня Windows 7 :P

Изображение
Что такое НЕТЕЛИБ?
Аватара пользователя
XxMARSxX
Супермодератор
Супермодератор
 
Сообщения: 1991
Возраст: 33
Зарегистрирован: 20 апр 2008, 18:02
Карма: + 22 -
Откуда: Украина, Полтавская область, Кременчуг, Автозаводской район, Нагорная часть

Re: вопрос по AJAX окну (ломаю голову)

Сообщение AllCity » 17 июл 2008, 13:02

Кстати у тебя получилось засунуть document.write('БЛАБЛАБЛА'); :?:
А то когда я поставлю его он убивает AJAX окно :(
Аватара пользователя
AllCity
Администратор
Администратор
 
Автор темы
Сообщения: 2505
Возраст: 30
Зарегистрирован: 18 апр 2008, 17:52
Карма: + 147 -
Откуда: Израиль, Тель-Авив

След.

Вернуться в Архив скриптов и интересных решений

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1