webForumDet fria alternativet

Ta bort alt-attributet i IE

5 svar · 431 visningar · startad av wyndan

wyndanMedlem sedan okt. 200450 inlägg
#1

Hejsan,

jag har ett script för att styla till title-attribut på min sida, som jag modifierat lite för att passa mina behov. Det som stör mig nu är att IE visar en bilds alt-värde när musen hålls över bilden, se exempel här (för muspekaren över bilderna). Det jag vill göra är först en koll för IE (navigator.appName = "Microsoft Internet Explorer" ? ), sedan ta bort ev. alt-värden (el.firstChild.removeAttribute("alt") ??), problemet är att jag är rätt kass på JavaScript och inte får det att fungera, metoden som gör allt jobb ser ut så här:

function Prepare(el){
    var tooltip,t,b,s,l,n,h;
    t=el.getAttribute("title");
    if(t==null || t.length==0){
    }else{
        el.removeAttribute("title");
        tooltip=CreateEl("span","tooltip");
        s=CreateEl("span");
        [b]n=t.split(/ -- /);
        if(n[1] != null){
            h=CreateEl("h2");
            h.appendChild(document.createTextNode(n[0]));
            tooltip.appendChild(h);
            s.appendChild(document.createTextNode(n[1]));
        }else[/b]
            s.appendChild(document.createTextNode(t));
        tooltip.appendChild(s);
        setStyles(tooltip);
        el.tooltip=tooltip;
        el.onmouseover=showTooltip;
        el.onmouseout=hideTooltip;
        el.onmousemove=Locate;
    }
}

det fetstilta är det jag modifierat.

Tycker inte det ska vara ett svårt problem men har försökt förgäves på egen hand/mha Google.

/Andreas

Peter SMedlem sedan dec. 20025 483 inlägg
#2

Hej! :)

Testa

function Prepare(el){
    var tooltip,t,b,s,l,n,h,img;
    t=el.getAttribute("title");
    if(t==null || t.length==0){
    }else{
        el.removeAttribute("title");
        tooltip=CreateEl("span","tooltip");
        s=CreateEl("span");
        n=t.split(/ -- /);
        if(n[1] != null){
            h=CreateEl("h2");
            h.appendChild(document.createTextNode(n[0]));
            tooltip.appendChild(h);
            s.appendChild(document.createTextNode(n[1]));
        }else
            s.appendChild(document.createTextNode(t));
        tooltip.appendChild(s);
        setStyles(tooltip);
        el.tooltip=tooltip;
        el.onmouseover=showTooltip;
        el.onmouseout=hideTooltip;
        el.onmousemove=Locate;
    }[b]
    var cn = el.childNodes[0];
    if (cn.nodeName.toLowerCase() == "img" && document.all && !window.opera){
	cn.alt = "";
    }[/b]
}
emissionMedlem sedan dec. 19996 721 inlägg
#3

Det borde räcka med att ändra raden:

el.removeAttribute("title");

till

el.setAttribute("title","");

...eftersom IE ignorerar alt-texten om det finns ett title-attribut, oavsett om det står något i det eller inte.

Peter SMedlem sedan dec. 20025 483 inlägg
#4

Hm, intressant. Ibland lär man sig något nytt :bire

zcorpanMedlem sedan dec. 20042 245 inlägg
#5

Jag skulle hellre lägga dit en title="" och låta alt vara. Alt används när bilden inte är tillgänglig. [ins] Oj, jag var inte så snabb där. ;) [/ins]

wyndanMedlem sedan okt. 200450 inlägg
#6

körde med Peters lösning, men ändrade cn.alt = "" till cn.title ="", gav samma resultat. Att köra el.setAttribute("title",""); funkar ju inte eftersom det är länken som har en titel och bilden som har alt-attributet.

Tack alla för svaren iaf :bire

127 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)