---
title: "Avancerat javascript ^^"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/132859-avancerat-javascript"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "echoSwe"
published: "2005-08-16T21:21:36.000Z"
updated: "2005-08-16T22:16:43.000Z"
replies: 3
views: 245
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/132859-avancerat-javascript"
---

# Avancerat javascript ^^

## #1 — echoSwe, 2005-08-16T21:21Z

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?

Permalänk: https://www.webforum.nu/p/132859

## #2 — Peter S, 2005-08-16T21:32Z

Hejsan!

Jag upplever inte felmeddelandet.

Vad jag har att anmärka på, är att du skapar en ny egenskap (temp) för input-elementet. En egenskap som egentligen inte existerar för \<input\> (inte någon annan tagg heller för den delen). Kanske kan det vara därför FF säger ifrån.

Istället kan du skapa en lokal variabel (var foo, säg) som du sparar den temporära datan i.

Permalänk: https://www.webforum.nu/p/1657427

## #3 — echoSwe, 2005-08-16T21:55Z

Testade byta ut till "foo" som variabel och jag får fortfarande samma fel. Fast man ser det inte direkt när man klickar, utan man måste gå in på tools --\> javascript console i firefox för att se felet.

Kollade med en kompis (silfver) och han får samma fel...

Permalänk: https://www.webforum.nu/p/1657431

## #4 — Peter S, 2005-08-16T22:16Z

Som sagt, jag får inget felmeddelande. Kan du snickra ihop en enkel testsida där felet uppenbarar sig?

Permalänk: https://www.webforum.nu/p/1657434

---

Tråden på webben: https://www.webforum.nu/amne/javascript/132859-avancerat-javascript
