Перейти к публикации

Рекомендованные сообщения

Здравствуйте.

Установил хак, который перерабатывает атрибут title и выводит так называемую "ысплывающую" подсказку.

Помогите пожалуйста, столкнулся с такой проблемой, что при наводе мышью на изображение, отрибут "title" срабатывает правильно (выводит подсказку) только в IE, а в FireFox все подсказки выводятся в левом нижнем углу шаблона. Чтобы это могло значить?

Ссылка на сообщение
Поделиться на других сайтах

Вроде прикрутил правильно, на других сайтах видел его же - в FireFox летает...

В IE всё ок.

Ссылка на сообщение
Поделиться на других сайтах

Это стили.

<style>.hint

{

background-color:#897B67;

line-height:10px;

color:white;

font-family:verdana;

font-size:11px;

width:auto;

border-top:1px solid white;

border-right:1px solid white;

border-bottom:1px solid white;

border-left:5px solid black;

margin:0px;

padding:8px;

position:absolute;

visibility:hidden;

}</style>

Это скрипт.

function MW_System_Load(){

this.wib = screen.width;

this.heb = screen.height;

this.documes = (document.getElementById || document.createElement || document.getElementsByTagName) ? true : false;

this.objects = window.addEventListener || window.attachEvent ? window : document.addEventListener ? document : null;

this.types = 'load';

}

MW_System_Load.prototype.addsevent = function(func){

if(this.objects.addEventListener){

this.objects.addEventListener(this.types,func,false);

return true;

} else if (this.objects.attachEvent){

this.objects.attachEvent("on" + this.types,func);

} else {

return false;

}

}

MW_System_Load.prototype.browser = function(){

this.ver = navigator.appVersion;

this.agent = navigator.userAgent.toLowerCase();

this.dom = document.getElementById ? 1:0;

this.all = document.all ? 1:0;

this.ie5 = (this.ver.indexOf("MSIE 5")>-1 && this.dom) ? 1:0;

this.ie6 = (this.ver.indexOf("MSIE 6")>-1 && this.dom) ? 1:0;

this.ie4 = (document.all && !this.dom) ? 1:0;

this.ie = this.ie4 || this.ie5 || this.ie6;

this.opera = this.agent.indexOf("opera")>-1;

this.gecko = (this.agent.indexOf("gecko")!=-1) ? 1:0;

this.bw = (this.ie || this.opera || this.gecko);

return this;

}

MW_System_Load.prototype.findobj = function(obj){

this.parent = window.document;

if(this.parent[obj]){ return this.parent[obj]; }

if(this.parent.all && this.parent.all[obj]){ return this.parent.all[obj]; }

if(this.parent.layers && this.parent.layers[obj]){ return this.parent.layers[obj]; }

if(this.parent.getElementById && this.parent.getElementById(obj)){ return this.parent.getElementById(obj); }

return null;

}

var MW = new MW_System_Load();

function MW_System_Hint(){}

MW_System_Hint.prototype.show = function(obj,str){

var hint = MW.findobj('hint');

if(!obj){ return; }

if(!MW.documes){ return; }

if(!hint){ return; }

hint.className = 'hint';

hint.style.left = 15;

hint.style.top = 50;

obj.onmouseout = function(advance){

hint.style.width = '';

hint.style.visibility = 'hidden';

if(hint.firstChild) hint.removeChild(hint.firstChild);

hint.appendChild(document.createTextNode(str));

};

obj.onmousemove = function(advance){

//str = str.replace(/</g,"&lt;");

//str = str.replace(/>/g,"&gt;");

hint.style.width = '';

hint.innerHTML = str;

vc = document.getElementsByTagName((document.compatMode && document.compatMode=="CSS1Compat") ? "HTML":"BODY")[0];

x = window.event ? event.clientX + vc.scrollLeft : advance.pageX;

y = window.event ? event.clientY + vc.scrollTop : advance.pageY;

vcwidth = vc.clientWidth ? vc.clientWidth + vc.scrollLeft : window.innerWidth + window.pageXOffset;

vcheight = vc.innerHeight ? window.innerHeight + window.pageYOffset : vc.clientHeight + vc.scrollTop;

if(hint.offsetWidth>500){ hint.style.width = '200'; }

if((x + hint.offsetWidth + 15) > vcwidth){

hint.style.left = x - hint.offsetWidth - 4;

} else {

hint.style.left = x + 15;

}

if((y + hint.offsetHeight + 19) > vcheight){

hint.style.top = y - hint.offsetHeight;

} else {

hint.style.top = y + 25;

}

//if(typeof(hint.style.MozOpacity)!="undefined"){

hint.style.opacity = '.91';

hint.style.filter = "alpha(opacity:91)";

//}

hint.style.visibility = 'visible';

};

}

MW_System_Hint.prototype.initialize = function(){

var hint = document.createElement("DIV");

hint.setAttribute('id','hint');

document.getElementsByTagName('body')[0].appendChild(hint);

hint.style.visibility = 'hidden';

var hintmarker = ['a','img'];

var textmarker = ['title','alt'];

var lenmarker = hintmarker.length;

for(var i=0; i<lenmarker; i++) {

atr = document.getElementsByTagName(hintmarker);

for(var j=0; j<atr.length; j++)

if(viewhint=atr[j].getAttribute(textmarker)){

atr[j].removeAttribute(textmarker);

HINT.show(atr[j],viewhint);

}

}

}

var HINT = new MW_System_Hint();

if(MW.objects){ MW.addsevent(HINT.initialize); }

Ссылка на сообщение
Поделиться на других сайтах

я на 4dle не пойду)

почему? :lol:

в моем шаблоне m3-reborn есть нормальный скрипт хинта, работающий (вроде как) во всех браузерах, используйте его..

Ссылка на сообщение
Поделиться на других сайтах

это ссылка на сайт, который я открывать не хочу. Собственно мне итак хорошо, не я прошу помощи

Ссылка на сообщение
Поделиться на других сайтах

в моем шаблоне m3-reborn есть нормальный скрипт хинта, работающий (вроде как) во всех браузерах, используйте его..

Можете выложить скрипт хинта? m3-reborn платный... мне в лс.

Заранее спасибо.

Ссылка на сообщение
Поделиться на других сайтах

создаем файл ghint.js

window.onerror=null;tooltip={attr_name:"tooltip",blank_text:"(откроется в новом окне)",newline_entity:"  ",max_width:0,delay:30,t:document.createElement("DIV"),c:null,g:false,m:function(e){if(tooltip.g){oCanvas=document.getElementsByTagName((document.compatMode&&document.compatMode=="CSS1Compat")?"HTML":"BODY")[0];x=window.event?event.clientX+oCanvas.scrollLeft:e.pageX;y=window.event?event.clientY+oCanvas.scrollTop:e.pageY;tooltip.a(x,y);}},d:function(){tooltip.t.setAttribute("id","tooltip");document.body.appendChild(tooltip.t);a=document.all?document.all:document.getElementsByTagName("*");aLength=a.length;for(var i=0;i<aLength;i++){if(!a[i]||!a[i].getAttribute)continue;tooltip_title=a[i].getAttribute("title");if(tooltip_title&&typeof tooltip_title!="string")tooltip_title="";tooltip_alt=a[i].getAttribute("alt");tooltip_blank=a[i].getAttribute("target")&&a[i].getAttribute("target")=="_blank"&&tooltip.blank_text;if(tooltip_title||tooltip_blank){a[i].setAttribute(tooltip.attr_name,tooltip_blank?(tooltip_title?tooltip_title+" "+tooltip.blank_text:tooltip.blank_text):tooltip_title);if(a[i].getAttribute(tooltip.attr_name)){a[i].removeAttribute("title");if(tooltip_alt&&a[i].complete)a[i].removeAttribute("alt");tooltip.l(a[i],"mouseover",tooltip.s);tooltip.l(a[i],"mouseout",tooltip.h);}}else if(tooltip_alt&&a[i].complete){a[i].setAttribute(tooltip.attr_name,tooltip_alt);if(a[i].getAttribute(tooltip.attr_name)){a[i].removeAttribute("alt");tooltip.l(a[i],"mouseover",tooltip.s);tooltip.l(a[i],"mouseout",tooltip.h);}}

if(!a[i].getAttribute(tooltip.attr_name)&&tooltip_blank){}}

document.onmousemove=tooltip.m;window.onscroll=tooltip.h;tooltip.a(-99,-99);},s:function(e){d=window.event?window.event.srcElement:e.target;if(!d.getAttribute(tooltip.attr_name))return;s=d.getAttribute(tooltip.attr_name);if(tooltip.newline_entity){s=s.replace(/\&/g,"&amp;");s=s.replace(/\</g,"&lt;");s=s.replace(/\>/g,"&gt;");s=s.replace(eval("/"+tooltip.newline_entity+"/g"),"<br />");tooltip.t.innerHTML=s;}else{if(tooltip.t.firstChild)tooltip.t.removeChild(tooltip.t.firstChild);tooltip.t.appendChild(document.createTextNode(s));}

tooltip.c=setTimeout("tooltip.t.style.visibility = 'visible';",tooltip.delay);tooltip.g=true;},h:function(e){tooltip.t.style.visibility="hidden";if(!tooltip.newline_entity&&tooltip.t.firstChild)tooltip.t.removeChild(tooltip.t.firstChild);clearTimeout(tooltip.c);tooltip.g=false;tooltip.a(-99,-99);},l:function(o,e,a){if(o.addEventListener)o.addEventListener(e,a,false);else if(o.attachEvent)o.attachEvent("on"+e,a);else return null;},a:function(x,y){oCanvas=document.getElementsByTagName((document.compatMode&&document.compatMode=="CSS1Compat")?"HTML":"BODY")[0];w_width=oCanvas.clientWidth?oCanvas.clientWidth+oCanvas.scrollLeft:window.innerWidth+window.pageXOffset;w_height=window.innerHeight?window.innerHeight+window.pageYOffset:oCanvas.clientHeight+oCanvas.scrollTop;tooltip.t.style.width=((tooltip.max_width)&&(tooltip.t.offsetWidth>tooltip.max_width))?tooltip.max_width+"px":"auto";t_width=tooltip.t.offsetWidth;t_height=tooltip.t.offsetHeight;tooltip.t.sty

le.left=x+8+"px";tooltip.t.style.top=y+8+"px";if(x+t_width>w_width)tooltip.t.style.left=w_width-t_width+"px";if(y+t_height>w_height)tooltip.t.style.top=w_height-t_height+"px";}}

var root=window.addEventListener||window.attachEvent?window:document.addEventListener?document:null;if(root){if(root.addEventListener)root.addEventListener("load",tooltip.d,false);else if(root.attachEvent)root.attachEvent("onload",tooltip.d);}
добавляем в css
#tooltip{background:#fff; border-left:1px solid #189bdd; border-right:1px solid #189bdd; border-bottom:1px solid #189bdd; border-top:3px solid #faae23; font:11px tahoma; color:#1e698e; padding:5px 7px; position:absolute; visibility:hidden;}
подключаем js, перед </head> вставляем
<script type="text/javascript" src="{THEME}/путь до файла/ghint.js"></script>

проверяем на работоспособность.

Ссылка на сообщение
Поделиться на других сайтах

Вроде прикрутил правильно, на других сайтах видел его же - в FireFox летает...

В IE всё ок.

аналогичная ситуация. не помогло.

но всё равно спасибо.

да ну? проверил в фоксе 2 и 3, в обоих работает.

Ссылка на сообщение
Поделиться на других сайтах

у меня 2.0.0.12..

сходи к доктору, проверь руки..

шутка конечно, но доля правды есть. Криво ты прикрутил скрипт к шаблону.

Ссылка на сообщение
Поделиться на других сайтах

хе. в чём кривизна? :) + у тебя всё ок, у меня нет... юзаем один бразуер (почти что)...

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...