webForumDet fria alternativet

Skriv ut referens

8 svar · 513 visningar · startad av Cactuz

CactuzMedlem sedan okt. 2001670 inlägg
#1

Kan man skriva ut nån slags referens så om man ändrar variabeln så ändras texten automatiskt som skrivits ut?

JojoxxMedlem sedan juni 20004 308 inlägg
#2

Menar du som ett objekt med olika egenskaper?

var garage=new Object();
garage['Kalle']='BMW';
garage['Pelle']='Opel';

var namn='Pelle';

alert(namn+' har en '+garage[namn]);
CactuzMedlem sedan okt. 2001670 inlägg
#3

Alltså, först skriver jag ut variabeln på sidan, sen ändrar jag variabeln så vill jag att det som skrivits ut på sidan ändras samtidigt automatiskt.

JojoxxMedlem sedan juni 20004 308 inlägg
#4

Umm... Typ:

<script type="text/javascript">
var foo="blå";
function dw(str){ document.write(str); }
</script>
...

Idag är himlen <script>dw(foo);</script> och jag känner mig <script>dw(foo);</script>.
dectgapMedlem sedan sep. 20021 655 inlägg
#5

Jojoxx skrev:

Umm... Typ:

<script type="text/javascript">
var foo="blå";
function dw(str){ document.write(str); }
</script>
...

Idag är himlen <script>dw(foo);</script> och jag känner mig <script>dw(foo);</script>.

Jag är ganska säker på att Cactuz menar så här:

<div>
<script type="text/javascript">
var text = "Välkommen";
document.write(text);
</script>
</div>

<script type="text/javascript">
text = "Hejsan";
</script>

Först ska "Välkommen" skrivas ut, men eftersom variabeln text ändrar värde ska även "Välkommen" ändras till "Hejsan".

Dock är jag ganska säker på att det inte går att lösa så enkelt, utan man får blanda in idn eller något annat för att identifiera texterna.

CactuzMedlem sedan okt. 2001670 inlägg
#6

Nej...

foo = "fint"

Står på sidan:
fint

Sen ändrar man foo = "fult"

Står på sidan:
fult

edit: Som dectgap menar ;)

JojoxxMedlem sedan juni 20004 308 inlägg
#7

Ja ni menar sååå.... :)

Då funkar som sagt inte document.write() eftersom det bara rakt av skriver ut en bestämt sträng en gång. Så för det första måste det kombineras med DOM. Vi refererar till ett element via dess id (precis som dectgap redan sagt). Men det intressanta är sedan när du ändrar variabeln. Från version 1.5 (tror jag) av javascript finns det med en metod som heter watch till Object-objektet. Detta kollar hela tiden när en egenskap ändrar värde vilket man kan nyttja ungefär såhär;

<script type="text/javascript">
var foo=new Object();
foo['mystr']='';
foo.watch('mystr',
	function (prop,oldvalue,newvalue) {
		document.getElementById('here').innerHTML=newvalue;
		document.getElementById('there').innerHTML=newvalue;
		return newvalue;
	}) 
window.onload=function(){ foo['mystr']='Hejsan'; }

</script> 

<span id="here"></span> och <span id="there"></span>

<a href="#" onclick="foo['mystr']=prompt('Gimme some text',''); return false;">Ny text</a>

Exemplet fungerar bara i Mozilla och webbläsare baserade på denna (alltså inte ex IE).

Skall du göra det IE-kompatibelt får du göra på det gamla sättet;

<script type="text/javascript">
function changeit(str){
	document.getElementById('here').innerHTML=str;
	document.getElementById('there').innerHTML=str;
}
</script>

<span id="here">Hejsan</span> och <span id="there">Hejsan</span>

<a href="#" onclick="changeit(prompt('Gimme some text','')); return false;">Ny text</a>

Men då "bevakar" du som synes inte variabeln.

CactuzMedlem sedan okt. 2001670 inlägg
#8

Hrm... Problem:

Error: document.getElementById("windows") has no properties

JojoxxMedlem sedan juni 20004 308 inlägg
#9

Elementet (vanligvis <div> eller <span>) windows (id="windows") måste finnas och det bör vara ett dokument som validerar relativt ok.

<script type="text/javascript">
window.onload=function(){
	document.getElementById("windows").innerHTML="bla...";
}
</script>
<span id="windows"></span>
133 ms totalt · 3 externa anrop · v20260731065814-full.beb2e261
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)