ti riscrivo il codice perchè con i.e. non funzionava, ora funziona !!!
ho divuto aggiungere la variabile helpbox alla funzione showPopup:
Codice HTML:
<script language="javascript">
function showPopup (targetObjectId, eventObj, helpbox, msg) {
if(msg == undefined) {msg="Errore";}
helpbox.value = msg;
if(eventObj) {
// hide any currently-visible popups
//window.currentlyVisiblePopup = targetObjectId;
hideCurrentPopup();
// stop event from bubbling up any farther
eventObj.cancelBubble = true;
// move popup div to current cursor position
// (add scrollTop to account for scrolling for IE)
//var newXCoordinate = (eventObj.pageX)?eventObj.pageX + xOffset:eventObj.x + xOffset + ((document.body.scrollLeft)?document.body.scrollLeft:0);
//var newYCoordinate = (eventObj.pageY)?eventObj.pageY + yOffset:eventObj.y + yOffset + ((document.body.scrollTop)?document.body.scrollTop:0);
//moveObject(targetObjectId, newXCoordinate, newYCoordinate);
// and make it visible
if( changeObjectVisibility(targetObjectId, 'visible') ) {
// if we successfully showed the popup
// store its Id on a globally-accessible object
window.currentlyVisiblePopup = targetObjectId;
return true;
} else {
// we couldn't show the popup, boo hoo!
return false;
}
} else {
// there was no event object, so we won't be able to position anything, so give up
return false;
}
} // showPopup
function hideCurrentPopup() {
// note: we've stored the currently-visible popup on the global object window.currentlyVisiblePopup
if(window.currentlyVisiblePopup) {
changeObjectVisibility(window.currentlyVisiblePopup, 'hidden');
window.currentlyVisiblePopup = false;
}
} // hideCurrentPopup
function changeObjectVisibility(objectId, newVisibility) {
// get a reference to the cross-browser style object and make sure the object exists
var styleObject = getStyleObject(objectId);
if(styleObject) {
styleObject.visibility = newVisibility;
return true;
} else {
// we couldn't find the object, so we can't change its visibility
return false;
}
} // changeObjectVisibility
function moveObject(objectId, newXCoordinate, newYCoordinate) {
// get a reference to the cross-browser style object and make sure the object exists
var styleObject = getStyleObject(objectId);
if(styleObject) {
styleObject.left = newXCoordinate;
styleObject.top = newYCoordinate;
return true;
} else {
// we couldn't find the object, so we can't very well move it
return false;
}
} // moveObject
// setup an event handler to hide popups for generic clicks on the document
//document.onclick = hideCurrentPopup();
function getStyleObject(objectId) {
// cross-browser function to get an object's style object given its id
if(document.getElementById && document.getElementById(objectId)) {
// W3C DOM
return document.getElementById(objectId).style;
} else if (document.all && document.all(objectId)) {
// MSIE 4 DOM
return document.all(objectId).style;
} else if (document.layers && document.layers[objectId]) {
// NN 4 DOM.. note: this won't find nested layers
return document.layers[objectId];
} else {
return false;
}
} // getStyleObject
//-->
</script>
input campo form per onfocus:
Codice HTML:
<input size="30" name="name" maxlength="45" onfocus="return !showPopup('quickhelp',event,hbox,'Inserisci il tuo Nome per favore!');">
DEVI SCRIVERE ONFOCUS COME E' SCRITTO:
onfocus="return !showPopup('quickhelp',event,hbox,'QUI INSERISCI IL TUO TESTO HELP');"
ora dove vuoi in fondo al form :
Codice HTML:
<div class="" id="quickhelp" onclick="event.cancelBubble = true;">
<div align="center"><b class="" style="text-align:center;">Piccolo Aiuto</b><br>
<textarea cols=25 rows=5 style="border: none" id="hbox"></textarea><br>
<a class="" href="#" onclick="hideCurrentPopup(); return false;"><small>Chiudi Dialogo</small></a>
</div>
</div>
L'ho provato con ie8 e firefox ...FUNZIONA BENISSIMO!!!
ps: guarda il codice completo dalla pagina:
http://eurosalute.altervista.org/too...izio_poll.html
Il mio codice sarà più complesso, però ti permette di definire un id diverso per ogni campo form e quindi di posizionare l'helpbox(o più helpbox) dove vuoi nella pagina, esempio:
Per il div definisco id=emailhelp e visibility: hidden;position:absolute;
Per textarea definisco id=emailhbox
Codice HTML:
<tr>
<td> Tuo Indirizzo email:</td>
<td>
<input size="30" name="email" maxlength="45" onfocus="return !showPopup('emailhelp',event,emailhbox,'Inserisci un tuo Indirizzo Email per favore! Questo input non è obbligatorio.');">
</td>
</tr>
<tr>
<td></td>
<td>
<div class="" id="emailhelp" onclick="event.cancelBubble = true;" style="visibility: hidden;position:absolute;">
<div align="center"><b class="blueheadline" style="text-align:center;">Piccolo Aiuto</b><br>
<textarea cols=25 rows=5 style="border: none" id="emailhbox"></textarea><br>
<a class="" href="#" onclick="hideCurrentPopup(); return false;"><small>Chiudi Dialogo</small></a>
</div></div>
</td>
</tr>
Guarda il codice completo dalla pagina:
http://eurosalute.altervista.org/too...izio_poll.html