Tjena!
Jag har två frågor. Den första handlar om en varning/error som firefox kastar. Så här ser den ut:
Error: [Exception... "'Permission denied to get property XULElement.selectedIndex' when calling method: [nsIAutoCompletePopup::selectedIndex]" nsresult: "0x8057001e (NS_ERROR_XPC_JS_THREW_STRING)" location: "JS frame :: http://localhost/haf.se/wwwpub/javascript/common.js :: anonymous :: line 19" data: no]
Source File: http://localhost/haf.se/wwwpub/javascript/common.js
Line: 19
och det gör den till den här koden:
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}
function wireSearchBox() {
var b = document.getElementById("txtSearch");
b.temp = b.value;
b.addEventListener('focus', function() {
if (this.value == this.temp) this.value = '';
this.addEventListener('blur', function() {
if (this.value.length < 1)
{
this.value = this.temp;
}
}, false);
}, false);
}
addLoadEvent(wireSearchBox);
addLoadEvent() är det inte jag som har kommit på, måste jag ändå säga, utan det är quirksmode.org, men wireSearchBox är det jag som har kommit på ;) - man blir ju bättre eller hur (ni som har sett mig skriva här innan vet). I alla fall så klagar den på rad nitton:
if (this.value == this.temp) this.value = '';
och säger något oförståligt... Någon som vet vad jag gör för fel? För funktionen fungerar perfekt.
Beskrivning av funktionen:
Hämta nuvarande text. När man klickar i rutan tas texten bort. När man sedan flyttar bort markören från rutan kollas det om det finns någon inskriven text i rutan och om det inte finns det så återställs den första texten. Om personen _har_ skrivit in något så tas inte det bort när markören tas bort.
...men eftersom man sedan kan markera rutan igen så måste man kolla rad 19: om det är användarens text eller orginaltexten som står där, för om det är användarens redan insatta så ska den inte tas bort när fokus kommer i textrutan.
Min andra fråga då: går det att göra den här koden snyggare?