それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

htm5 clipboard api は実装がまだで、クリップボードボードの取得手段がほぼ無い。

クリップボードにアクセスできたら便利なんだけど、セキュリティ上の理由でできないよねって。
わかってるんです、が、あきらめきれなくて調べました。

スクリプトを使う

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でもと思いましたが、、、ChromeOpera BlinkならExtensionを自作使うのが確実なようです。
Extensionをいちいち作らなくちゃ何も出来ないBlinkって不便。。。Presto蘇って。


広告を非表示にする