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>
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.
Luulisin että tarkoittaa että tulostus tulisi body osioon eikä head?
Ymmärsinkö oikein, että haluat saada tuon mainoksen näkyviin "ad" divin sisälle?
Sehän onnistuu seuraavasti:
document.getElementById('ad').innerHTML = 'mainos';
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.
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ä.
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?
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.
Aihe on jo aika vanha, joten et voi enää vastata siihen.