Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21

Discussione: problema event.offsetX

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    161

    problema event.offsetX

    ciao, ho notata una cosa molto particolare,
    il comando event.offsetX con Mozilla non funziona m con IE si.
    qualcuno mi sa dare una spiegazione logica?
    grazie

  2. #2
    "event" non è un oggetto valido e viene riconosciuto solo da Internet Explorer.
    La gestione degli eventi in Browser più "attenti" alle direttive del W3C avviene in modo diverso (e standard)
    per ottenere un oggetto event compatibile con tutti i browser:
    function faiQualcosa(e) {
    if(window.event) var e = window.event;
    /*all'attivazione della funzione avremmo in e sia l'oggetto event di IE sia il gestore eventi di altri browser*/
    }

    A seconda, poi, dell'uso che ne devi fare (individuare la posizione del cursore?) potrai utilizzarne le proprietà:
    e.pageX (posizione X del cursore se l'evento è riferito al mouse) in FF
    e.clientX in IE
    e.offsetLeft è riconosciuto da entrambi.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    161
    puoi per cortesia postarmi un codice di esempio?
    io avevo trovato il metodo navigator.userAgent.toUpperCase();
    e poi facevo degli if su questo metodo per verificare il browser, però è senza dubbio più semplice il modo che mi hai postato tu.

  4. #4
    Sarebbe MoOoOoOlto più comodo sapere cosa fa lo script! ^_^
    Se puoi copiare ed incollare il codice potrei modificarlo e renderlo compatibile con Firefox, Opera e Safari...

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    161
    quello che mi serve è solo una piccola procedura per verificare il tipo di browser usato,
    per il resto recupero solo le coord del mouse all'interno di una figura.
    con ie event.offsetX funziona ma con mozilla no, per cui a seconda del browser userò o event.offsetX oppure, nel caso di mozilla evt.clientX.

  6. #6
    codice:
    var browser = function(){
    	var Version=window.navigator.userAgent;
    	var browsers=new Array("MSIE", "Opera","AppleWebKit" ,"Gecko", "PLAYSTATION 3" , "PSP" 
    	"Lynx" ,"Links" ,"AmigaVoyager");
    		for (i=0;i<browsers.length;i++){
    			if (Version.indexOf(browsers[i])>-1) return browsers[i];
    		}
    }
    la funzione ritornerà MSIE se lanciata su Internet Explorer, Gecko se lanciata su Firefox o simili (come Deer Park), Opera se lanciata su Opera e così via.
    NB: AppleWebKit è il motore di Safari.

    Per usarla:
    codice:
    var brow=browser();
    if (brow=="MSIE"){
    ----
    }
    else if (brow=="Gecko"){
    ----
    }
    else if...
    e così via.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    161
    provo subito, ti ringrazio

  8. #8
    Avevo sbagliato a trascrivere. Ora ho corretto.

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    161
    <html>
    <head>
    <title>rilevazione browser utente</title>
    <script>
    function prova() {
    alert('aaaaaa');
    // lista delle variabili locali

    var browser = function(){
    var Version=window.navigator.userAgent;
    var browsers=new Array("MSIE", "Opera","AppleWebKit" ,"Gecko", "PLAYSTATION 3" , "PSP"
    "Lynx" ,"Links" ,"AmigaVoyager");
    for (i=0;i<browsers.length;i++){
    if (Version.indexOf(browsers[i])>-1) return browsers[i];
    }
    return (window.navigator.appCodeName)
    }

    var brow=browser();
    if (brow=="MSIE"){
    alert('explorer');
    }
    if else(brow="Gecko"){
    alert('mozilla');
    }

    </script>
    </head>
    <body onload="javascriptrova();">
    </body>
    </html>



    non funziona, con il codice sotto mano si dovrebbe stare molto poco a trovare l'errore
    grazie

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    161
    <html>

    <head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

    <title>VIDEOSYSTEMS - MAIN PROGRAM TEST PAGE</title>

    <script language="Javascript">

    newImage0_1 = new Image();
    newImage0_1.src = './image0.bmp?' + Math.random();
    function RefreshIt() {
    var bool = newImage0_1.complete;
    if(bool){

    document.images['myImage0'].src = newImage0_1.src;
    newImage0_1.src = './image0.bmp?' + Math.random();

    }

    setTimeout('RefreshIt()', 20);

    }


    var h;
    var w;
    var himmagine;
    var wimmagine;
    function grandezza_imm(){ //questo metodo rimane uguale nei due metodi

    imm = new Image();
    imm.src = '2.jpg';
    h = imm.height;
    w = imm.width;
    imma = document.getElementById('immagine');
    himmagine = imma.height;
    wimmagine = imma.width;
    return himmagine,wimmagine;
    }


    function displayDivMouseCoords(e){ //questo metodo rimane uguale nei 2 browser
    browserUtente = navigator.userAgent.toUpperCase();

    if(typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object"){
    coords = getMouseCoordsWithinEventTarget2(e);
    }
    else if(window.ActiveXObject && browserUtente.indexOf("MSIE 4") < 0) {
    coords = getMouseCoordsWithinEventTarget(e);
    }
    document.getElementById('X').innerHTML = "<input maxlength ='3' size='2' type='text' name='Offset_x' value=' "+coords.x+"'>";
    document.getElementById('Y').innerHTML = "<input maxlength ='3' size='2' type='text' name='Offset_y' value=' "+coords.y+"'>";
    }

    function getMouseCoordsWithinEventTarget(event){ //questo metodo cambia

    grandezza_imm();
    var coords = { x: 0, y: 0};

    if(!event) {


    event = window.event;
    a = event.offsetX;
    b = event.offsetY;

    coords.x = parseInt(event.offsetX * (parseFloat(w/wimmagine)));
    coords.y = parseInt(event.offsetY * (parseFloat(h/himmagine)));

    }
    else
    {

    var Element = event.target ;
    var CalculatedTotalOffsetLeft = 0;
    var CalculatedTotalOffsetTop = 0 ;

    while (Element.offsetParent)
    {
    CalculatedTotalOffsetLeft += Element.offsetLeft ;
    CalculatedTotalOffsetTop += Element.offsetTop ;
    Element = Element.offsetParent ;
    }

    parzx = event.pageX - CalculatedTotalOffsetLeft;
    parzy = event.pageY - CalculatedTotalOffsetTop;

    coords.x = parseInt(parzx * (parseFloat(w/wimmagine)));
    coords.y = parseInt(parzy * (parseFloat(h/himmagine)));


    }

    return coords;
    }


    //calcolo delle coordinate con mozilla

    function getMouseCoordsWithinEventTarget2(event){ //questo metodo cambia

    grandezza_imm();
    var coords = { x: 0, y: 0};

    if(!event) {
    alert('not event');
    event = window.event;

    alert(event.clientX);
    alert(event.clientY);
    a = event.offsetX;
    b = event.offsetY;

    coords.x = parseInt(event.offsetX * (parseFloat(w/wimmagine)));
    coords.y = parseInt(event.offsetY * (parseFloat(h/himmagine)));

    }
    else
    {
    alert('event');
    var Element = event.target ;
    var CalculatedTotalOffsetLeft = 0;
    var CalculatedTotalOffsetTop = 0 ;

    while (Element.offsetParent)
    {
    CalculatedTotalOffsetLeft += Element.offsetLeft ;
    CalculatedTotalOffsetTop += Element.offsetTop ;
    Element = Element.offsetParent ;
    }

    parzx = event.pageX - CalculatedTotalOffsetLeft;
    parzy = event.pageY - CalculatedTotalOffsetTop;

    coords.x = parseInt(parzx * (parseFloat(w/wimmagine)));
    coords.y = parseInt(parzy * (parseFloat(h/himmagine)));


    }

    return coords;
    }



    </script>

    </head>

    <body onLoad=" setTimeout('RefreshIt()', 20)" leftmargin="0" topmargin="50" bgcolor="#184070" lang="it" style='font-family:"Arial"'>

    <center>[img]2.jpg[/img]

    <table><tr><td>

    <table cellspacing="1" cellpadding="1">

    <tr><td><table align="center">

    <center>
    [img]2.jpg[/img]
    </center>

    </table></td>

    <td>

    <table colspan="3" bgcolor="#ffffff">

    <center>

    <table cellspacing="1" cellpadding="1" bgcolor="#000000">

    <tr><td align="center" valign="middle">

    <font size="+2" color="#ffffff">IMPOSTAZIONI FINESTRA</font></td></tr>

    <tr><td colspan="1" bgcolor="#ffffff">

    <form action="setWindow.cgi" method="post">

    <hr><center>

    <table><tr><td>

    <table border="0" cellspacing="1" cellpadding="1" bgcolor="#404040">

    <tr><td bgcolor="#f0f0f0"><center>

    <table>

    <tr></tr>

    <tr><td>Stato Telecamera:</td><td>

    <td width="30" align="center" bgcolor="#40A040">

    0
    </td>

    </td></tr>

    <tr></tr>

    <tr><td>Temperatura Interna:</td><td>

    <td width="30" align="center" bgcolor="#40A040">
    51.0
    </td>

    </td></tr>

    <tr></tr>

    <tr><td>Dimensione x Finestra Elaborazione:</td><td><input maxlength="3" size="2" type="text" name="WinElab_x">

    <td width="30" align="center" bgcolor="#40A040">

    32
    </td>

    </td></tr>

    <tr></tr>

    <tr><td>Dimensione y Finestra Elaborazione:</td><td><input maxlength="3" size="2" type="text" name="WinElab_y">

    <td width="30" align="center" bgcolor="#40A040">

    64
    </td>

    </td></tr>

    <tr></tr>

    <tr><td>Coordinata x Finestra Elaborazione:</td><td id="X"><input maxlength="3" size="2" type="text" name="Offset_x">

    <td width="30" align="center" bgcolor="#40A040">

    128
    </td>

    </td></tr>

    <tr></tr>

    <tr><td>Coordinata y Finestra Elaborazione:</td><td id="Y"><input maxlength="3" size="2" type="text" name="Offset_y">

    <td width="30" align="center" bgcolor="#40A040">

    128
    </td>

    </td></tr>

    </td></tr>

    </table>

    </td></tr></table>


    <center>Impostazioni del Sensore</center>

    <center>Parametri di Elaborazione</center>

    </center></td></tr></table>

    </table>

    </center>

    <hr>

    <center><input type="submit" value="Imposta parametri" /></center>

    </form>

    <center><form action="saveWindow.cgi" method="post">

    <input type="submit" value="Salva Parametri"></center>

    </form>

    </td></tr></table>

    </td></tr></table>

    </center>

    </body></html>



    questo è il codice completo della mia applicazione, l'errore stà nellìif (!event).
    prova a copiare e incollare e a vedere cosa fà di strano.
    mi sembra strano però che non funzioni in quanto avevo fatto uno script che cliccando su una immagine recuperava i valori delle coord relative del mouse sulla immagine.
    e qui invece non funziona.
    help!!!!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.