Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Problém s atributem title v PHP

Pracuji s CMS PHP-Fusion a jedno rozšíření obsahuje mimo jiné tento kód:

echo "<a href='".BASEDIR."messages.php?msg_send=".$data['user_id']."'><img src='".INFUSIONS."shoutbox_panel/images/pm.png' title=\"header=[<img src='".INFUSIONS."shoutbox_panel/images/info.gif' style='vertical-align: middle;'> ".$locale['fb_007']."] body=[".phpentities($locale['fb_035'])."] delay=[0] fade=[on]\" alt='' border='0'></a> ";

V zásadě jde o to, že při najetí na obrázek (pm.png) se objeví speciální nápověda (text se tahá z externích souborů - $locale). Ve FF a IE je to OK, ale v Opeře se přes speciální nápovědu objeví standardní "title" s tetxtem

[<img src='".INFUSIONS."shoutbox_panel... atd.

Existuje nějaká možnost, jak to odladit i pro Operu?

Díky.

Předmět Autor Datum
Najjednoduchšie bude upraviť JavaScript, ktorý sa stará o ten efekt, aby nastavil prázdny title.
los 31.07.2007 18:54
los
Los opět nezklamal... :)) Zkusím to a ohlásím výsledek... Díky.
Drbo 31.07.2007 18:59
Drbo
V tom kódu, co jsi dal, žádný title nevidím. Tak jak jej může Opera zobrazit?
host 31.07.2007 19:08
host
Je tam, popojeď posuvníkem... ;-) Spíš mám problém, že vůbec netuším, kde to najít v tom javascript…
Drbo 31.07.2007 19:10
Drbo
Posuvníkem jsem popojel, ale neviděl. Teď už jo. :-[ Ono by tam v podstatě to title nemuselo ani bý…
host 31.07.2007 19:18
host
No, to jsem se ale hrubě přecenil... :-p Ten script se jmenuje BoxOver a je převzat tady odsud: Box…
Drbo 31.07.2007 19:14
Drbo
Ten skript už nastavuje prázdny title v udalosti mousemove dokumentu - to je ale pre Operu už trochu…
los 31.07.2007 19:56
los
Píšu si... Losovo pravidlo č.1: "Kde není žádný skript, nejsou žádné chyby". :-D
host 31.07.2007 20:19
host
Předpokládám, že to neslyšíš poprvé ani naposled - ale jsi génius! Právě jsi po letmém pohledu oprav…
Drbo 31.07.2007 21:00
Drbo
A přece ještě jedna drobnost... Funguje to skvěle, ale když se ten shoutbox (protože toje z kódu pro…
Drbo 31.07.2007 22:36
Drbo
Po nahraní obsahu do toho shoutboxu nainicializuj všetky prvky v ňom pomocou toho istého kódu. (Vo f…
los 01.08.2007 08:44
los
Losi, nejen že se přeceňuji já, ale hlavně mě, bohužel, přeceňuješ ty... Já jsem schopen tak maximál…
Drbo 01.08.2007 21:45
Drbo
Ve finále jsem to vyřešil tím, že jsem vykopal ten ajax, v zásadě jsem to obnovování nepotřeboval a…
Drbo 04.08.2007 00:06
Drbo
V nastaveniach toho boxu si môžeš zvoliť, aká CSS trieda sa má použiť. Takže pre jeden typ prvkov to…
los 04.08.2007 09:08
los
Tohle kupodivu nefunguje, ale experimentováním jsem právě empiricky dokázal, že nejjednodušší cesta… poslední
Drbo 04.08.2007 20:16
Drbo

Ten skript už nastavuje prázdny title v udalosti mousemove dokumentu - to je ale pre Operu už trochu neskoro. Výsledkom je, že title sa zobrazuje iba pri prvom prejdení myšou.

Jedna možnosť je zavolať na začiatku funkciu scanBO na elementoch, kde sa má ten efekt zobrazovať. Čiže napr. na koniec funkcie init:

var els = document.getElementsByTagName("*");

for (var i = 0; i < els.length; ++i)
	if (!els[i].hasbox)
		scanBO(els[i]);

Alebo ďalšia možnosť je ignorovať drobný nedostatok v Opere, prípadne ešte lepšie by bolo vyhodiť ten skript úplne.

Po nahraní obsahu do toho shoutboxu nainicializuj všetky prvky v ňom pomocou toho istého kódu.
(Vo funkcii, kde nahrávaš obsah do elementu, máš určite v nejakej premennej uložený ten element. Namiesto "document" môžeš napísať meno tej premennej, aby to bolo o trochu lepšie.)

Losi, nejen že se přeceňuji já, ale hlavně mě, bohužel, přeceňuješ ty... Já jsem schopen tak maximálně použít if...else, nebo tak něco... Všechnno se učím svépomocí za pochodu, protože jsem se rozhodl, že si své stránky budu dělat sám... Jinými slovy, zkus to prosím říct hodně polopaticky... :-|

Ve finále jsem to vyřešil tím, že jsem vykopal ten ajax, v zásadě jsem to obnovování nepotřeboval a rozhazovalo to češtinu tak obskurním způsobem, že jsem to vzdal a nemrzí mě to... Nicméně přece jen ještě jeden dotaz... Ten script nastavuje bublinovou nápovědu a já bych potřeboval u najetí na jeden typ prvků šířku 500px, u najetí na jiný typ prvků šířku 282px. Šlo by to nějak obelstít?

Díky.

P.S. pro Losa, ale i ostatní... na mě je třeba mluvit odně polopaticky... ;-)

V nastaveniach toho boxu si môžeš zvoliť, aká CSS trieda sa má použiť. Takže pre jeden typ prvkov to definuješ napr. takto:

title="... cssheader=[boxheader1] cssbody=[boxbody1] ..."

a pre druhý takto:

title="... cssheader=[boxheader2] cssbody=[boxbody2] ..."

A v štýloch definuješ napr.:

.boxheader1, .boxbody1 { width: 500px; }
.boxheader2, .boxbody2 { width: 282px; }

Tohle kupodivu nefunguje, ale experimentováním jsem právě empiricky dokázal, že nejjednodušší cesta bývá úspěšná. Z toho skriptu jsem prostě vyhodil definici šířky headeru i body a protože používám obrázky, ono se to prostě nastaví samo! :-D

Otázkou je, co dělat, kdybych chtěl použít text místo obrázků, ale myslím, že to potřebovat nebudu...

Díky.

Zpět do poradny Odpovědět na původní otázku Nahoru