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
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
"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.
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.
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...
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.
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.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]; } }
NB: AppleWebKit è il motore di Safari.
Per usarla:
e così via.codice:var brow=browser(); if (brow=="MSIE"){ ---- } else if (brow=="Gecko"){ ---- } else if...
provo subito, ti ringrazio
Avevo sbagliato a trascrivere. Ora ho corretto.
<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
<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!!!!!!