Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Mainoksen vaihtaminen javascriptillä

Sivun loppuun

sane [02.08.2008 19:50:55]

#

Hei,

Tarkoituksena olisi saada javascriptillä mainos vaihdettua aina tietyn tapahtuman sattuessa. Mainos tulostetaan javascriptillä erillisellä funktiolla document.print metodilla, joten kysymys kuuluukin pystynkö kutsumaan tuota funktiota esimerkiksi head-osiosta, silleen, että se vielä tulostuisi oikeaan paikkaan. Selkeyttämiseksi esimerkki koodista jota ajattelin, mutta ei toiminut.

<html>
  <head>
    <script type="text/javascript">
      function show_ad(){
        var element=document.getElementById("ad");
        element.ad(); // funktio joka tulostaa mainoksen
        }
    </script>
  </head>
  <body>
    <div id="ad">
    </div>
  </body
</html>

Grez [02.08.2008 21:01:48]

#

sane kirjoitti:

Mainos tulostetaan javascriptillä erillisellä funktiolla document.print metodilla, joten kysymys kuuluukin pystynkö kutsumaan tuota funktiota esimerkiksi head-osiosta, silleen, että se vielä tulostuisi oikeaan paikkaan.

Mitä mahdat tarkoittaa "oikealla paikalla"? Tyyliin 5cm paperin yläreunasta ja 2 cm vasemmasta reunasta vai jotain ihan muuta?

No, joka tapauksessa document.print metodille ei voi määritellä erityistä sijaintia tulostukselle, se pitäisi tehdä dokumentin muotoilussa. CSS:ssä voit tehdä erilliset määrittelyt tulostukselle ja ruudussa näytölle.

Putkalainen [02.08.2008 21:15:40]

#

Luulisin että tarkoittaa että tulostus tulisi body osioon eikä head?

Tumettaja [02.08.2008 21:28:19]

#

Ymmärsinkö oikein, että haluat saada tuon mainoksen näkyviin "ad" divin sisälle?
Sehän onnistuu seuraavasti:

document.getElementById('ad').innerHTML = 'mainos';

Grez [02.08.2008 21:31:22]

#

lainaus:

Luulisin että tarkoittaa että tulostus tulisi body osioon eikä head?

No ei kai sillä ole mitään merkitystä, missä dokumentti käsketään tulostaa, kunhan se on vaan latautunut siinä vaiheessa kun se tulostetaan.

Tosin eipä tuo alkuperäinen kysyjä kovin selkeä ollut muutenkaan kun puhuu mainoksen vaihtamisesta sivulla ja sitten sen sivun tulostamisesta ristiin.

sane [02.08.2008 22:25:36]

#

Tumettaja kirjoitti:

Ymmärsinkö oikein, että haluat saada tuon mainoksen näkyviin "ad" divin sisälle?
Sehän onnistuu seuraavasti:

document.getElementById('ad').innerHTML = 'mainos';

Kyllä, mutta ongelmana on, että tuo ad()-funktio ei ole omaa tuotantoa, enkä sitä saa muuttaa. Kyseinen funktio käyttää document.print()-metodia mainoksen tulostamiseen, jolloin tulostaminen onnistuu helposti seuraavalla tavalla:

<div id="ad">
  <script type="text/javascript">
    ad();
  </script>
</div>

Tuolla tavalla vaan en saa mainosta vaihdettua ilman koko sivun uudelleenlataamista.

Pahoittelen epäselvästä aloitusviestistä.

Grez [02.08.2008 22:40:18]

#

Siis varmistetaan nyt että puhut yleisesti käytössä olevilla termeillä:

Tulostaminen -> Sivun tms. laittaminen paperille tietokoneeseen liitetyllä tulostimella.

Eli kun sanot, että ulkopuolista tuotantoa oleva skripti tulostaa mainoksen, niin tarkoitat tosiaan, että se tulostuu paperille?

document.print:hän nimittäin tekee juuri tuon.


Toisaalta tuohon skriptiisi sopisi kuvaukseksi document.write() metodi, joka kirjoittaa dokumenttiin tavaraa siihen kohtaan, jossa se suoritetaan.

Eli kummasta tässä nyt oikeasti puhutaan?

Tumettaja [02.08.2008 23:42:06]

#

sane kirjoitti:

Kyllä, mutta ongelmana on, että tuo ad()-funktio ei ole omaa tuotantoa, enkä sitä saa muuttaa. Kyseinen funktio käyttää document.print()-metodia mainoksen tulostamiseen, jolloin tulostaminen onnistuu helposti seuraavalla tavalla:

<div id="ad">
  <script type="text/javascript">
    ad();
  </script>
</div>

Tuolla tavalla vaan en saa mainosta vaihdettua ilman koko sivun uudelleenlataamista.

Voit käyttää javascriptin settimeout funkkaria päivittääksesi tuota ad() funkkaria halutun ajan välein. Tällöin sivua ei tarvitse ladata aina uudestaan.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta