Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: html sivun kopiointi leikepöydälle

Sivun loppuun

JimProfit [19.10.2011 13:06:42]

#

Terve

Osaisko joku kertoa mulle jonkin helpon javascriptin tai vastaavan miten saisin kopioitua windowsin leikepöydälle html-sivun; esim. sellainen nappi (button) pitäs saada sivulle joka ottaa sen sivun leikepöydälle, ja voin liittää sen sivun sivun sisällön vaikka wordiin.

Yucca [19.10.2011 13:09:00]

#

Tarvitsetko todella napin? Eikö Ctrl+A Ctrl+C (select all, copy) riitä?

JimProfit [19.10.2011 13:10:38]

#

Joo, kyllä mä tarvisin sen napin sinne. Voihan sen toki ottaa noilla ctrl+a komennolla helposti, mutta jos vain sen napin toteutus ei ole monimutkaista niin se olis hyvä olla tässä tapauksessa.

Grez [19.10.2011 13:13:01]

#

Ilmeisesti on halvempaa lisäillä turhia nappeja kuin palkata ihmisiä, jotka osaavat käyttää tietokoneita.

Blaze [19.10.2011 13:41:37]

#

JimProfit kirjoitti:

Osaisko joku kertoa mulle jonkin helpon javascriptin tai vastaavan miten saisin kopioitua windowsin leikepöydälle html-sivun

alert("Paina Ctrl+A, Ctrl+C kopioidaksesi sivun leikepöydälle.");

pistemies [19.10.2011 14:06:01]

#

Blaze kirjoitti:

JimProfit kirjoitti:

Osaisko joku kertoa mulle jonkin helpon javascriptin tai vastaavan miten saisin kopioitua windowsin leikepöydälle html-sivun

alert("Paina Ctrl+A, Ctrl+C kopioidaksesi sivun leikepöydälle.");

Ei taida tuo joka paikassa toimia.
Minulla esim. Open Officessa liittäminen leikepöydälle tapahtuu hiiren keskipainikkeella, samoin kaikissa muissa editoreissa. Ihan siis oletuksena toimii noin.

Ehkä kullekkin käyttöjärjestelmälle pitää tehdä oma alert-nappi :)

JimProfit [19.10.2011 14:26:40]

#

Grez kirjoitti:

Ilmeisesti on halvempaa lisäillä turhia nappeja kuin palkata ihmisiä, jotka osaavat käyttää tietokoneita.

Tässä tapauksessa on näin, eikä sinne mitään alert-ilmoitusta tulla laittamaan.

Metabolix [19.10.2011 16:04:39]

#

JavaScriptilla ei pitäisi olla mitään asiaa koneen leikepöydälle, se olisi vaarallista. Voit sen sijaan tehdä allekirjoitetun Java-appletin, joka tuottaa Robot-luokalla nuo mainitut näppäimenpainallukset. (Sama onnistunee myös Silverlight-ohjelmalla tai IE:ssä ActiveX-komponentilla.)

Edit: Kas kummaa, IE:ssä (ainakin IE 6:ssa) näköjään on kuin onkin mahdollisuus käsitellä leikepöytää JS:llä. Sivun HTML-koodin (html-tagien välisen osan) saa siis tekstinä leikepöydälle näin:

clipboardData.setData("Text", document.documentElement.innerHTML);

Ilmeisesti muotoiluja säilyttävä kopiointi ei kuitenkaan onnistu. Pelkkä teksti löytyy kyllä:

document.body.createTextRange().execCommand("Copy");

Vastaavasti taas leikepöydän sisällön vakoilu tapahtuu helposti näin:

var teksti = "";
function vakoile() {
  var t = clipboardData.getData("Text");
  if (typeof t != "string" || t == teksti) return;
  teksti = t;
  // TODO: Lähetä teksti omalle palvelimelle!
}
setInterval(vakoile, 2000);

Onneksi en käytä IE:tä.

pistemies kirjoitti:

Ehkä kullekkin käyttöjärjestelmälle pitää tehdä oma alert-nappi :)

Niin, ja alkuperäisen kysymyksen huomioon ottaen muilla käyttöjärjestelmillä teksti olisi seuraava: "Asenna Windows ja yritä uudestaan!" Tosin useimmissa tilanteissa perinteiset näppäinyhdistelmät kyllä toimivat, jokseenkin varmasti sinullakin. (Sitä paitsi kyse oli kopioinnista eikä liittämisestä.)

tsuriga [19.10.2011 16:38:18]

#

Leikepöydälle kopioinnin voi toteuttaa myös Flashilla.

Petja [19.10.2011 17:26:10]

#

tsuriga kirjoitti:

Leikepöydälle kopioinnin voi toteuttaa myös Flashilla.

Tiivistettynä ilman perusteluja: En suosittele

jlaire [19.10.2011 19:26:09]

#

Joo ei kannata käyttää Flashiä, eikä varsinkaan Silverlightia. Olisi parempi koodata ihan oman selain-plugini, jonka käyttäjä saa asentaa pelkästään tätä käyttötarkoitusta varten.

Tekstin maalaus onnistuu JavaScriptillä, mutta Ctrl-C jää silti käyttäjän vastuulle.

Metabolix [20.10.2011 09:53:20]

#

Petja: Voisit mielellään perustella kantasi, kun mikään muukaan esitetty vaihtoehto ei ole kovin hyvä. Veikkaan, että Flash saattaa näistä olla jopa näppärin – tietenkin Blazen ehdotuksen jälkeen.


Sivun alkuun

Vastaus

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

Tietoa sivustosta