Ciao ragazzi,
ho scritto una classe di cui riporto il pezzo di codice incriminato:
codice HTML:
<script>
(function() {
"use strict";
/* [...] */
var Keyboard = {
/* [...] */
get_tooltip : function() {
var _this = this
, value = this.innerHTML
, position = Keyboard.get_position(this);
if (special_chars_1.indexOf(value) == -1 &&
special_chars_2.indexOf(value) == -1)
{
(!Keyboard.caps_lock ? lower_chars : upper_chars).forEach(function(v, k, a) {
if (v.length > 1 && value == v[0]) {
var left = 0
, i = 0;
for (; i < v.length; i++) {
var div = document.createElement("div");
div.setAttribute("id" , "uniq_" + i);
div.setAttribute("class" , "prova prova2");
div.setAttribute("style" , "top: " + (position.top - 42) + "px; left: " + (position.left + left) + "px;");
div.setAttribute("onClick", "Keyboard.insert_char(this.innerHTML)");
div.innerHTML = v[i];
document.body.appendChild(div);
Keyboard.tooltip[i] = new Array();
Keyboard.tooltip[i][0] = i;
Keyboard.tooltip[i][1] = _this;
left += 40;
}
}
});
}
},
insert_char : function(add) {
var password = document.getElementById('password');
password.value = password.value + add;
},
/* [...] */
}
</script>
Se potete notare la riga: div.setAttribute("onClick", "Keyboard.insert_char(this.innerHTML)"); non funzionerà mai perchè ovviamente la classe Keyboard la definisco dentro a una funzione, ed anche se definisco var Keyboard = {}; al di fuori di essa non funziona.