Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не работает меню на narod.ru, xaramenu.js 
V
    Опции темы
WhiteSNAKE
Дата 3.9.2006, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 4.8.2006

Репутация: нет
Всего: нет



Приветствую! Сделал сайт на народе, а менюшку для него в Xara Menu Maker. В оффлайне всё работает, но как только ты в сети она просто зависает. В сети продаётся исправленный xaramenu.js файл, который, по словам его автора специально доработан для narod.ru. Но никаких средств у меня нет да и в JavaScript полный ноль, помогите пожалуйста решить проблему!!!
PM MAIL   Вверх
dstorm81
Дата 3.9.2006, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: 20
Всего: 39



приаттач архив


--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
WhiteSNAKE
Дата 3.9.2006, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 4.8.2006

Репутация: нет
Всего: нет



Лови smile

Menu.html:
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>MenuMaker produced NavBar</title>
</head>
<body bgcolor="#ffffff" text="BLACK">
<script src="xaramenu.js"></script><script menumaker src="menu_.js"></script>
</body></html>

Menu_.js
Код

//©Xara Ltd
if(typeof(loc)=="undefined"||loc==""){var loc="";if(document.body&&document.body.innerHTML){var tt=document.body.innerHTML;var ml=tt.match(/["']([^'"]*)menu_.js["']/i);if(ml && ml.length > 1) loc=ml[1];}}

var bd=0
document.write("<style type=\"text/css\">");
document.write("\n<!--\n");
document.write(".menu__menu {z-index:999;border-color:#000000;border-style:solid;border-width:"+bd+"px 0px "+bd+"px 0px;background-color:#666666;position:absolute;left:0px;top:0px;visibility:hidden;}");
document.write(".menu__plain, a.menu__plain:link, a.menu__plain:visited{text-align:left;background-color:#666666;color:#cccccc;text-decoration:none;border-color:#000000;border-style:solid;border-width:0px "+bd+"px 0px "+bd+"px;padding:2px 0px 2px 0px;cursor:hand;display:block;font-size:8pt;font-family:Arial, Helvetica, sans-serif;}");
document.write("a.menu__plain:hover, a.menu__plain:active{background-color:#ffcc33;color:#000000;text-decoration:none;border-color:#000000;border-style:solid;border-width:0px "+bd+"px 0px "+bd+"px;padding:2px 0px 2px 0px;cursor:hand;display:block;font-size:8pt;font-family:Arial, Helvetica, sans-serif;}");
document.write("a.menu__l:link, a.menu__l:visited{text-align:left;background:#666666 url("+loc+"menu__l.gif) no-repeat right;color:#cccccc;text-decoration:none;border-color:#000000;border-style:solid;border-width:0px "+bd+"px 0px "+bd+"px;padding:2px 0px 2px 0px;cursor:hand;display:block;font-size:8pt;font-family:Arial, Helvetica, sans-serif;}");
document.write("a.menu__l:hover, a.menu__l:active{background:#ffcc33 url("+loc+"menu__l2.gif) no-repeat right;color: #000000;text-decoration:none;border-color:#000000;border-style:solid;border-width:0px "+bd+"px 0px "+bd+"px;padding:2px 0px 2px 0px;cursor:hand;display:block;font-size:8pt;font-family:Arial, Helvetica, sans-serif;}");
document.write("\n-->\n");
document.write("</style>");

var fc=0x000000;
var bc=0xffcc33;
if(typeof(frames)=="undefined"){var frames=0;}

startMainMenu("",0,0,2,6,0)
mainMenuItem("menu__b1",".gif",22,92,"index.html","","",2,2,"menu__plain");
mainMenuItem("menu__b2",".gif",22,92,"foto.html","","Фотосъёмка",2,2,"menu__plain");
mainMenuItem("menu__b3",".gif",22,92,"video.html","","Видеосъёмка",2,2,"menu__plain");
mainMenuItem("menu__b4",".gif",22,92,"uslugi.html","","Услуги",2,2,"menu__plain");
mainMenuItem("menu__b5",".gif",22,92,"zakazat.html","","Заказать",2,2,"menu__plain");
mainMenuItem("menu__b6",".gif",22,92,"golos.html","","Голосование",2,2,"menu__plain");
endMainMenu("",0,0);

startSubmenu("menu__b4_2","menu__menu",180);
submenuItem("Съёмка различных мероприятий","javascript:;","","menu__plain");
submenuItem("Оцифровка видео","javascript:;","","menu__plain");
submenuItem("Монтаж вашего видео","javascript:;","","menu__plain");
submenuItem("&copy;Xara","http://www.xara.com/products/MenuMaker/mmtrialmenu.asp","","menu__plain");
endSubmenu("menu__b4_2");

startSubmenu("menu__b4_1","menu__menu",204);
submenuItem("Проведение фотосессий","javascript:;","","menu__plain");
submenuItem("Сканирование плёнок","javascript:;","","menu__plain");
submenuItem("Сканирование фотографий","javascript:;","","menu__plain");
submenuItem("Восстановление фотографий","javascript:;","","menu__plain");
submenuItem("Расцвечивание ч/б фото","javascript:;","","menu__plain");
submenuItem("Создание коллажей, календарей и др.","javascript:;","","menu__plain");
endSubmenu("menu__b4_1");

startSubmenu("menu__b4","menu__menu",92);
mainMenuItem("menu__b4_1","Фото",0,0,"javascript:;","","",1,1,"menu__l");
mainMenuItem("menu__b4_2","Видео",0,0,"javascript:;","","",1,1,"menu__l");
endSubmenu("menu__b4");

startSubmenu("menu__b3_1","menu__menu",70);
submenuItem("Свадьбы","video_sv.html","","menu__plain");
submenuItem("Выпускные","video_vup.html","","menu__plain");
submenuItem("Другое...","video_dr.html","","menu__plain");
endSubmenu("menu__b3_1");

startSubmenu("menu__b3","menu__menu",92);
mainMenuItem("menu__b3_1","Примеры",0,0,"javascript:;","","",1,1,"menu__l");
submenuItem("Цены","price.html","","menu__plain");
submenuItem("Заказать","zakazat.html","","menu__plain");
endSubmenu("menu__b3");

startSubmenu("menu__b2_1","menu__menu",70);
submenuItem("Свадьбы","foto_sv.html","","menu__plain");
submenuItem("Выпускные","foto_vup.html","","menu__plain");
submenuItem("Другое...","foto_dr.html","","menu__plain");
endSubmenu("menu__b2_1");

startSubmenu("menu__b2","menu__menu",92);
mainMenuItem("menu__b2_1","Примеры",0,0,"javascript:;","","",1,1,"menu__l");
submenuItem("Цены","price.html","","menu__plain");
submenuItem("Заказать","zakazat.html","","menu__plain");
endSubmenu("menu__b2");

loc="";


xaramenu.js
Код
// ©Xara Ltd 2002
var ma=new Array();
var mx=new Array();
var my=new Array();
var mc=new Array();
var mal=0;var main=0;
var menuw=200;
var psrc=0;
var pname="";
var al="";
var gd=0;
var gx,gy;
var NS7=(!document.all&&document.getElementById);
var NS4=(!document.getElementById);
var IE5=(!NS4&&!NS7&&navigator.userAgent.indexOf('MSIE 5.0')!=-1);
if(navigator.userAgent.indexOf('Opera')!=-1)NS4=1;
var NS6=(NS7&&navigator.userAgent.indexOf('Netscape6')!=-1);
function startMainMenu(file,h,w,dir,space,align)
{
if(w>0)menuw=w;
main=dir;
if(main==1||main==2)document.write("<table border=\"0\" cellspacing=\""+space+"\" cellpadding=\"0\">");
if(file!="")
{
al="";
if(align==1)al=" align=\"right\"";
if(align==2)al=" align=\"center\"";
if(main==1||main==2)document.write("<tr><td"+al+">");
document.write("<img src=\""+loc+file+"\" border=\"0\"");
if(h>0)document.write(" height=\""+h+"\"");
if(w>0)document.write(" width=\""+w+"\"");
document.write(" />");
if(main==1||main==2)document.write("</td>");
if(main==1)document.write("</tr>");
if(main==3)document.write("<br />");
}
}
function endMainMenu(file,h,w){if(file!="")
{
if(main==1)document.write("<tr>");
if(main==1||main==2)document.write("<td"+al+">");
document.write("<img src=\""+loc+file+"\" border=\"0\"");
if(h>0)document.write(" height=\""+h+"\"");
if(w>0)document.write(" width=\""+w+"\"");
document.write(" />");
if(main==1||main==2)document.write("</td></tr>");
}
if(main==1||main==2)document.write("</table>");
main=0;
}
function mainMenuItem(name,ext,h,w,url,tar,alt,dir,state,s)
{
if(NS4&&main==0)return;
var isgraphic=ext.charAt(0)==".";
if(main==1)document.write("<tr>");
if(main==1||main==2)document.write("<td"+al+">");
document.write("<a ");
if(url!=""||!isgraphic)document.write("href=\""+url+"\" ");
if(tar!="")document.write("target=\""+tar+"\" ");
document.write("onmouseout=\"");
if(dir>0)document.write("tidyMenu(event);");
document.write("\" onmouseover=\"");
if(dir>0)document.write("openMenu(event, '"+name+"',"+dir+","+bc+","+fc+");");
if(state>1&&isgraphic)
{
document[name+"_over"]=new Image();
document[name+"_over"].src=loc+name+"_over"+ext;
document.write("setGraphic(event, '"+loc+name+"_over"+ext+"');");
}
document.write("return false;\"");
if(!isgraphic)document.write(" class=\""+s+"\" style=\"width:"+(w>0?w:menuw)+"px\"");
document.write(">");
if(isgraphic){
document.write("<img src=\""+loc+name+ext+"\" border=\"0\"");
if(h>0)document.write(" height=\""+h+"\"");
if(w>0)document.write(" width=\""+w+"\"");
if(alt!="")document.write(" alt=\""+alt+"\"");
document.write(" />");
}
else
{
document.write("&nbsp;"+ext+"&nbsp;");
}
document.write("</a>");
if(main==1||main==2)document.write("</td>");
if(main==1)document.write("</tr>");
if(main==3)document.write("<br />");
}
function startSubmenu(name,style,sw)
{
if(NS4)return;
if(sw>0)menuw=sw;
document.write("<div id=\""+name+"\" class=\""+style+"\"  style=\"width:"+(menuw+(NS7?bd*2:0))+"px\">");
}
function endSubmenu(name)
{
if(NS4)return;
document.write("</div>");
if(!NS7)document.getElementById(name).onmouseout=tidyMenu;
}
function submenuItem(text,url,tar,s)
{
if(NS4)return;
if(text=="---")document.write("<img src=\""+loc+"---.gif\" height=\"1\" width=\""+menuw+"\" />");
else 
if(text.charAt(0)=='<')document.write(text);
else{document.write("<a ");
if(url!="")document.write("href=\""+url+"\" ");
if(tar!="")document.write("target=\""+tar+"\" ");
document.write("class=\""+s+"\" style=\"width:"+menuw+"px\">&nbsp;"+text+"&nbsp;</a>");
}
}
function setGraphic(event,name)
{
if(NS4)return;
psrc=(NS7)?event.target:event.srcElement;
pname=psrc.src;
if(NS7)event.target.src=name;
else event.srcElement.src=name;
}
function openMenu(event,id,pos,bc,fc)
{
if(NS4)return;
var el,x,y;if(gd==0)
{
var p=document.getElementById(id);
gx=0;
gy=0;
while(p&&p.parentNode.nodeName!="BODY")
{
p=p.parentNode;
if(p.nodeName=="DIV"||p.nodeName=="LAYER"||p.nodeName=="SPAN")
if(p.style.position=="absolute")
{
gx+=p.offsetLeft;gy+=p.offsetTop;
}
}
if(p)gd=1;
}
if(mal>0)
{
el=document.getElementById(ma[mal-1]);
if(mx[mal-1]!=el.offsetLeft||my[mal-1]!=el.offsetTop){el.style.left=mx[mal-1];
el.style.top=my[mal-1];}tidyMenu(event);
}
if(NS7){
var p=event.target;
if(p.nodeName!="A"&&p.nodeName!="IMG"&&p.parentNode.nodeName=="A")p=p.parentNode;
dx=p.offsetWidth;
dy=p.offsetHeight;
if(mal==0)
{
x=p.x;
y=p.y;
if(typeof(p.x)=="undefined"||!NS6)
{
x=p.offsetLeft;
y=p.offsetTop;
while(!NS6&&p.parentNode.nodeName!="BODY")
{
p=p.parentNode;
if(p.nodeName=="TD"||p.nodeName=="TABLE")
{
x+=p.offsetLeft;
y+=p.offsetTop;
}
}
}
}
else
{
el=document.getElementById(ma[mal-1]);
x=el.offsetLeft;
y=el.offsetTop+p.offsetTop;
}
if(pos!=3)x-=bd;
if(pos==3&&mal>0)x+=bd;
}
else
{
x=event.clientX-event.offsetX+document.body.scrollLeft-document.body.clientLeft;
y=event.clientY-event.offsetY+document.body.scrollTop-document.body.clientTop;
dx=event.srcElement.offsetWidth;
dy=event.srcElement.offsetHeight;
if(mal>0)
{
y-=bd;
if(pos!=3)x-=2*bd;
}
x-=gx;
y-=gy;
}
el=document.getElementById(id);
if(el&&el.style.visibility!="visible")
{
if(pos==1)
{
x+=dx;
el.style.left=x-el.offsetWidth+"px";
el.style.top=y+"px";
nspeed=el.offsetWidth/frames;
}
else if(pos==2)
{
y+=dy;
el.style.left=x+"px";
el.style.top=y-el.offsetHeight+"px";
nspeed=el.offsetHeight/frames;
}
else if(pos==3)
{
x-=el.offsetWidth;
el.style.left=x+el.offsetWidth+"px";
el.style.top=y+"px";
nspeed=el.offsetWidth/frames;
}
mx[mal]=x;
my[mal]=y;
if(NS7||IE5||frames==0)
{
el.style.left=x+"px";el.style.top=y+"px";
}
if(!IE5)clipMenu(mal,el);
el.style.visibility="visible";
ma[mal]=id;
if(NS7)
{
var p=event.target;
if(p.nodeName!="A"&&p.parentNode.nodeName=="A")p=p.parentNode;
mc[mal]=p.style;
el.onmouseout=tidyMenu;
}
else
{
mc[mal]=event.srcElement.style;
if(mal>0)
{
mc[mal].backgroundColor=bc;
mc[mal].color=fc;
}
}
mal++;
}
}
function overMenu(x,y)
{
x-=gx;
y-=gy;
for(i=0;i<mal;i++)
{
var el=document.getElementById(ma[i]);
if(el.offsetLeft+el.offsetWidth>x&&el.offsetLeft<=x&&el.offsetTop+el.offsetHeight>y&&el.offsetTop<=y)
{
return ma[i];
}
}
return "";
}
function tidyMenu(e){
if(NS4)return;
if(NS7){
t=overMenu(e.pageX,e.pageY);
if(t!=""&&(e.target.firstChild==e.relatedTarget||e.target==e.relatedTarget.firstChild))return;
}
else t=overMenu(event.clientX+document.body.scrollLeft-document.body.clientLeft,event.clientY+document.body.scrollTop-document.body.clientTop);
om=0;
for(i=0;i<mal;i++)
{
var mail=ma[i].length;
if(mail>t.length||t.substring(0,mail)!=ma[i])
{
var el=document.getElementById(ma[i]);
el.style.visibility="hidden";
mc[i].backgroundColor="";
mc[i].color="";
}
else{ma[om]=ma[i];
mx[om]=mx[i];
my[om]=my[i];
om++;
}
}
mal=om;
if(mal==0&&psrc)psrc.src=pname;
}
function animate()
{
for(i=0;i<mal;i++)
{
var el=document.getElementById(ma[i]);
if(el.style.visibility=="visible")
{
if(el.offsetLeft<mx[i])el.style.left=Math.min(el.offsetLeft+nspeed,mx[i])+"px";
if(el.offsetLeft>mx[i])el.style.left=Math.max(el.offsetLeft-nspeed,mx[i])+"px";
if(el.offsetTop<my[i])el.style.top=Math.min(el.offsetTop+nspeed,my[i])+"px";
clipMenu(i,el);
}
}
if(mal!=0||frames!=0)setTimeout("animate()",50);
}
function clipMenu(i,el)
{
if(el.offsetLeft>mx[i])el.style.clip="rect("+(my[i]-el.offsetTop)+"px "+(el.offsetWidth+(mx[i]-el.offsetLeft))+"px "+el.offsetHeight+"px "+0+"px)";
else el.style.clip="rect("+(my[i]-el.offsetTop)+"px "+el.offsetWidth+"px "+el.offsetHeight+"px "+(mx[i]-el.offsetLeft)+"px)";
}


PM MAIL   Вверх
LesnoyChelovek
Дата 3.9.2006, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


странник Интернета
**


Профиль
Группа: Участник
Сообщений: 346
Регистрация: 27.2.2006
Где: Русь

Репутация: нет
Всего: 10



А по моему JavaScipr на народе не рубит. Хотя могу и ошибаться.


--------------------
Делай добро и бросай его в воду... оно не утонет.. добром к тебе вернеться.
http://picasaweb.google.com/LesnoyChelovek/Photo
PM MAIL   Вверх
WhiteSNAKE
Дата 4.9.2006, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 4.8.2006

Репутация: нет
Всего: нет



Да не, вроде пашет. 
Цитата
На Народе можно использовать все скрипты, которые выполняются в пользовательском браузере (JavaScript, VBScript), а также Java-applet'ы, ActiveX controls, Macromedia Flash. 

Скрипты, выполняемые на сервере (CGI-скрипты на любых языках, включая Perl; ASP, PHP, JSP, а также SSI и FrontPage server extensions), в настоящее время не поддерживаются.


Трабл именно в xaramenu.js... smile 
PM MAIL   Вверх
12345c
Дата 5.9.2006, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Конфликт c одним из баннеров. Надо в скрипте выбрать такие переменные, чтобы не пересекались с баннерами. Припишите каждой переменной скрипта буквы "xm_" впереди, например, конфликт исчезнет. Не трогать можно только внутренние переменные функций, объявленные как var xxx,... Но объявления var вне функций менять надо (var loc="", var tt, ...). Имена функций - тоже надо, но они длинные, с небольшой вероятностью пересекаются.

Проще достать код баннера было бы, но он у них цепляется на лету и, возможно, меняется.
PM WWW   Вверх
WhiteSNAKE
Дата 5.9.2006, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 4.8.2006

Репутация: нет
Всего: нет



Ничего не получилось. Заменил всё в глобальном VAR'e и в самом файле (эти переменные).
Код

var xm_ma=new Array();
var xm_mx=new Array();
var xm_my=new Array();
var xm_mc=new Array();
var xm_mal=0;var main=0;
var xm_menuw=200;
var xm_psrc=0;
var xm_pname="";
var xm_al="";
var xm_gd=0;
var xm_gx,xm_gy;

После этого перестали работать выпадающие пункты меню.
PM MAIL   Вверх
12345c
Дата 5.9.2006, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Тогда так: добейтесь работы, меняя переменные по частям и не на "народе", потом вставляйте в "народ". Удобнее отыскивать их по всему коду или по группе файлов, пользуясь продвинутым текстовым редактором типа UltraEdit, HTMLPad. Там же и замена. Скорее всего, конфликтует одна из коротких переменных или имеющая осмысленное имя.
PM WWW   Вверх
WhiteSNAKE
Дата 6.9.2006, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 4.8.2006

Репутация: нет
Всего: нет



Благодарю! Будем пробовать smile 
PM MAIL   Вверх
12345c
Дата 12.9.2006, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Вспомнил  самое лучшее и точное средство выяснить, где конфликт. Надо поставить сниффер HTTP (плагин в Мозилле или "HTTP Analyzer IE" - программа) и смотреть все коды подгружаемых скриптов и текстов. Тут уже баннеры никуда не денутся, и если только они не зашифрованы, можно будет видеть, какие переменные они определяют. Их переименовать в своей программе. Наиболее правильно пользоваться программами с уникальными глобальными именами и скриптами с минимизированным количеством глобальных имён. (Что относится к культуре программирования, но не соблюдается в клиентских скриптах по причине меньшей компактности.)
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0535 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.