Avatar billede montago Praktikant
18. juli 2008 - 20:12 Der er 9 kommentarer og
1 løsning

deaktivere mouse click og dobbelclick i Explorer 6.0

Jeg er igang med at lave VisualStudio i Javascript...
http://mdk2002.dyndns.org/Editor

men er løbet ind i et problem (igen igen igen) med IE 6.0

lige nu, kan jeg dobbeltklikke på et ord i Firefox 2.0, hvorefter det bliver markeret (CTRL + Click virker også i FF2)

men i IE6 er det total fucked... enten bliver et område markeret hvidt, eller hele teksten... og ved CTRL+A bliver al tekst i vinduet markeret !!

hvordan hulan dræber jeg events i IE6... uden at smadre computeren i raseri :-D

jeg har snart prøvet alt:

//virker ikke
__content.onclick = new Function("return false");


//virker heller ikke

if (!evt.stopPropagation){
        evt.stopPropagation = function() {this.cancelBubble = true;};
        evt.preventDefault = function() {this.returnValue = false;};
    }
   
    if (!evt.stop){
        evt.stop = function(){
            this.stopPropagation();
            this.preventDefault();
        };
    }
   
    evt.stop();   

//virker heller ikke:
__content.onmouseclick = function(){ return false }
Avatar billede montago Praktikant
18. juli 2008 - 20:14 #1
//virker heller ikke, da det er en FF funktion

window.captureEvents( Event.Click | Event.DBLCLICK )
Avatar billede montago Praktikant
18. juli 2008 - 20:14 #2
IE7 er heller ikke meget bedre :-(
Avatar billede montago Praktikant
18. juli 2008 - 20:16 #3
... det skal lige siges, at grunden til jeg vil disable click og dobbelclick event'ene. er fordi de i IE6 er for utilregnelige...

læs her (under Double Click) : http://unixpapa.com/js/mouse.html


Jeg er derfor igang med at lave min egen Click|DblClick event registrering via MouseUp eventet + en timer
Avatar billede olebole Juniormester
18. juli 2008 - 21:05 #4
<ole>

Til en start sættes event handlers med henholdsvis attachEvent i IE og addEventListener i andre DOM compliant browsere:
    oElement.attachEvent("onclick", fnCallBack);

- og:
    oElement.addEventListener("click", fnCallBack, false);

Dernæst vil en crossbrowser måde at undgå event'ens boblen op gennem hierakiet og at forhindre default-handlingen i at udføres se sådan ud:

if (evt.stopPropagation) evt.stopPropagation();
else evt.cancelBubble = true;
if (evt.preventDefault) evt.preventDefault();
else evt.returnValue = true;

- men det er ikke alle events, der kan cancel'es  =)

/mvh
</bole>
Avatar billede montago Praktikant
18. juli 2008 - 21:37 #5
hmm...

ifølge quirksmode er inline event registrering fuldt ud lovligt og crossbrowser venligt - og vil for dens sags skyld ikke ændre noget i denne sag.

ifølge Wiki, er click og dblclick cancellable


de 4 linier, har heller ikke gjort en forskel :-( .. har prøvet at registrer event'et på window, document og mit div elemnent: __content

uden held...
Avatar billede olebole Juniormester
19. juli 2008 - 00:24 #6
"ifølge quirksmode er inline event registrering fuldt ud lovligt og crossbrowser venligt" >> Du bruger jo XHTML, som er XML derfor og kræver XML-DOM  =)

Jeg forstår ikke, hvad det er, du ikke kan. Prøv at vise et simpelt eksempel
Avatar billede montago Praktikant
19. juli 2008 - 08:51 #7
du kan jo lige læse hvad jeg skriver i starten ;-)


men ellers:

1. åbn http://www.mdk-photo.com/Editor
2. dobbelklik eller ctrl+click på et ord i editoren

IExplorer6 markere teksten i vinduet (som browseren er vandt til)
Firefox2 markere ordet man klikkede på (via mit sirlige markerings system)
Avatar billede olebole Juniormester
20. juli 2008 - 22:03 #8
Det var vist ikke, hvad jeg spurgte om. Kan du lave et simpelt eksempel, hvor du demonstrerer, hvad det er, der ikke vil lykkes for dig? Du forventer formodentlig ikke, jeg trawler 11 scriptfiler igennem for at fine evt. inkonsistens  =)
Avatar billede montago Praktikant
21. juli 2008 - 07:34 #9
fra /Initializer.js

window.onload = function()
{
    window.onclick = function(e)
    {
        var evt = e ? e : window.event;
       
        if (evt.stopPropagation) evt.stopPropagation();
        else evt.cancelBubble = true;
       
        if (evt.preventDefault) evt.preventDefault();
        else evt.returnValue = false;
       
        return false;
    }
    window.ondblclick = function(e)
    {
        var evt = e ? e : window.event;
       
        if (evt.stopPropagation) evt.stopPropagation();
        else evt.cancelBubble = true;
       
        if (evt.preventDefault) evt.preventDefault();
        else evt.returnValue = false;
       
        return false;
    }
}
Avatar billede montago Praktikant
30. juli 2008 - 19:02 #10
omformulere....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester