クリップボードにアクセスできたら便利なんだけど、セキュリティ上の理由でできないよねって。
わかってるんです、が、あきらめきれなくて調べました。
スクリプトを使う
http://www.steamdev.com/zclip/
https://github.com/zeroclipboard/zeroclipboard
それぞれ、Flashのスクリプトを経由している
textarea/input[type=text] を経由すれば←だめ
var ta = document.createElement("textarea") ta.value="hello world"; ta.select(); document.body.appendChild(ta) document.execCommand("copy")
document.execCommandでcopyを実行することがそもそもセキュリティ上の問題を引き起こすのでダメ。
contenteditableを使う ← copyそのものがダメ
var div = document.createElement("div") div.setAttribute("contenteditable",true); document.body.appendChild(div) #...適当に編集し #...選択して document.execCommand("delete")
execCommand("copy")がそもそも実行されずにfalse返してくるだけなので、どうすることも。
execCommandはContentEditable
ContentEditableのためにIEが追加したDHTMLの名残り・・・もっともContentEditableもhtml5に含まれる(らしいというか、クロスブラウザ化された)ので、ガンガン使える。ただしクリップボードは無理
将来的には、
ClipboardDataApiでクロスブラウザで使えるかも用になるでしょう。Chromeの実験機能に、chrome.experimental.clipboardが作られていてChrome#13で拡張機能側でPermisionを依頼することが出来るようになった。
だからExtensionなら使うことができるが、
現状では通常のサイトスクリプトではどうすることも出来ないようでした。
js consoleやブックマークレットから使えるのは、なかなか無い。
JSconsoleやブックマークでパパっと使えるものがあればと思ったけど無い感じです。
せめてUserJSでもと思いましたが、、、ChromeやOpera BlinkならExtensionを自作使うのが確実なようです。
Extensionをいちいち作らなくちゃ何も出来ないBlinkって不便。。。Presto蘇って。
参考資料
http://javascripter.hatenablog.com/entry/20091230/1262191418
http://cpplover.blogspot.jp/2009/07/javascriptclipboard.html
https://developer.mozilla.org/ja/docs/Rich-Text_Editing_in_Mozilla#Executing_Commands
http://stackoverflow.com/questions/6925073/copy-paste-not-working-in-chrome-extension
https://developer.chrome.com/extensions/whats_new.html#13