Naime, imam stranicu, na koju želim da "nakačim" svoju skriptu putem Greasemonkeya. Problem je što je ta stranica dinamička, i ono što ja želim da menjam se ne loaduje odmah:
// skripta za zamenu
function changeTheWorld( idRef, val ) {
// da li browser podrzava ovu fju
if(!document.getElementById ) return;
// trazenje inputa
var inputobj = document.getElementById( idRef );
if( inputobj ) {
// update
inputobj.value = val;
}
}
// kacenje svih eventova
function attachBehaviors() {
// da li browser podrzava ovu fju
if(!document.getElementById ) return;
// trazenje linka koji menja input
var linkObj = document.getElementById( 'link' );
if( linkObj ) {
// kacenje onclick eventa
linkObj.onclick = function() {
changeTheWorld( 'where', 'Ovo se ispisuje u input field' );
};
}
var mojdiv = document.getElementById("wi-where");
mojdiv.innerHTML = '<input type="text" name="location" id="where" value=""/><a id="link">kad se ovo klikne trebalo bi da se zameni tekst u inputu</a>'
}
// ovo tera browser da pozove sve kad se ucita prozor, u cemu i mislim da je problem, jer js injectuje ovo naknadno
window.onload = function() {
attachBehaviors();
};
i sa ovim ja lepo dobijem input u tom divu i link pored, ali kad ga kliknem u inputu se ne pojavi tekst 'Ovo se ispisuje u input field', a kad u html-u napravim (statički)
<input type="text" name="location" id="where" value=""/><a id="link">kad se ovo klikne trebalo bi da se zameni tekst u inputu</a>
bez ove dve linije u skripti
var mojdiv = document.getElementById("wi-where");
mojdiv.innerHTML = '<input type="text" name="location" id="where" value=""/><a id="link">kad se ovo klikne trebalo bi da se zameni tekst u inputu</a>'
onda sve lepo radi, tako da je problem do "kačenja" i aktiviranja eventa, samo što ja ne znam da ga rešim, niti znam da li je moguće rešiti ga, ali se nadam da jeste. Kako da nateram ovo da proradi?













