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.
Tarvitsetko todella napin? Eikö Ctrl+A Ctrl+C (select all, copy) riitä?
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.
Ilmeisesti on halvempaa lisäillä turhia nappeja kuin palkata ihmisiä, jotka osaavat käyttää tietokoneita.
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.");
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 :)
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.
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ä.)
Leikepöydälle kopioinnin voi toteuttaa myös Flashilla.
tsuriga kirjoitti:
Leikepöydälle kopioinnin voi toteuttaa myös Flashilla.
Tiivistettynä ilman perusteluja: En suosittele
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.
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.
Aihe on jo aika vanha, joten et voi enää vastata siihen.