Kuinka saan linkkiä painamalla sivun sisältöä päivitettyä kutsumatta funktiota? Eli sivulla on seuraavanlainen koodipätkä ja kun painaa nuolta eteenpäin "seuraavat();" Pitäisi tämän funktion kutsuminen vaikuttaa koko sivulla olevaan kirjoitukseen (document.writellä laitettu). Koodi sivun body tagin sisällä on seuraavanlainen, ja sitten headissa on funktiot. Olen yrittänyt muuttaa tämän funktioksi, mutta silloin se hävittä kaiken muun sivulta, eli onko tähän mitään muuta tapaa? Ja kohdat, jotka pitäisi päivittää aina painaessa, ovat nämä ehtolausekkeiden tarkistamiset ja funktioiden kutsumiset tuon document.writen sisältä.
<script type="text/javascript"> document.write("<table><tr>"); if(lasku != 0){ document.write("<td><a href=\"javascript:edelliset();\"><img src=\"t.png\" border=\"0\" /></a></td>"); } for(k = 0; k < 9; k++){ document.write("<td width=\"90\"><a href=\"" + linkki(k) + "\"><img border=\"0\" src=\"" + kuva(k) + "\" /></a></td>"); } if(lasku < kuvat.length){ document.write("<td><a href=\"javascript:seuraavat();\"><img src=\"e.png\" border=\"0\" /></a></td>"); } document.write ("</tr></table>"); </script>
Oletkohan nyt alunperinkin lähtenyt ns. takaperin puuhun?
Lebe80 kirjoitti:
Oletkohan nyt alunperinkin lähtenyt ns. takaperin puuhun?
Jaa, voikko sit neuvoo miten mennään oikein päin?:P Pystyykö linkkien arvoja määrittää funktion avulla, tyyliin linkki1.href = "jotakin";? Tätäkin yritin, mutta sanoi, ettei linkki1:llä ole ominaisuuksia tjsp..
Laitat sen funktioksi, ja laitat sen funktion ajettavaksi sivun latauksen yhteydessä. Muistaakseni se kävi vaikka näin: <body onload="funktio();">
JTS kirjoitti:
Laitat sen funktioksi, ja laitat sen funktion ajettavaksi sivun latauksen yhteydessä. Muistaakseni se kävi vaikka näin: <body onload="funktio();">
Jep, tätä on yritetty, mutta ongelmana oli, että näin tehden sivulta katosi kaikki muu sisältö:( No pitäis vissii sit toteuttaa kaikki muukin sisältö tolla funktiolla, vaikka tuntuukin hieman turhalta.
sane kirjoitti:
Pystyykö linkkien arvoja määrittää funktion avulla, tyyliin linkki1.href = "jotakin";? Tätäkin yritin, mutta sanoi, ettei linkki1:llä ole ominaisuuksia tjsp..
Toki, kunhan ensin kaivat sen linkin DOM-puusta jotenkin esille. ID:n perusteella tuo taitaa olla helpointa, ts.
<a id="linkki" href="http://www.mureakuha.com">hyvä ohjelmointisivusto</a> document.getElementById("linkki").href = "https://www.ohjelmointiputka.net";
Document.write taitaa pyyhkiä vanhan kun käytetään funktioissa (käytetään document.open methodia joka pyyhkii vanhan datan). Katsopa tuolta josko document.createTextNode sopisi paremmin:
http://developer.mozilla.org/en/docs/DOM:
JTS kirjoitti:
Document.write taitaa pyyhkiä vanhan kun käytetään funktioissa (käytetään document.open methodia joka pyyhkii vanhan datan). Katsopa tuolta josko document.createTextNode sopisi paremmin:
http://developer.mozilla.org/en/docs/DOM:document.createTextNode
Tuo olisi muuten hyvä, mutta ainakin tuon esimerkin mukaan se vaan lisää aina sitä tekstiä, mikä ei oikein sopisi tähän käyttötarkoitukseen. Eli pitäisi poistaa se aikaisemmin javascriptillä kirjoitettu teksti, mutta ei poistaa sitä jota on sivulla jo entuudestaan.
No tuo blazen koodihan "riittää"? Koko höttömölö sijaitsee taas sijainnissa: document.getElementById("linkki").innerHTML
Siitäkin voit sitä muokata...
Kiitoksia vastauksista, en huomannut tuota Blazen koodia edellisen vastauksen yhteydessä. Eiköhän näillä pärjää sit:)
DOM:n avullahan nuo tosiaan hoituisi fiksuimmin. Solmuja voi poistaa puusta funktiolla removeChild. Lisäinfoa: http://developer.mozilla.org/en/docs/DOM:element
Aihe on jo aika vanha, joten et voi enää vastata siihen.