]> Copy-Paste for Nintendo DSi Browser

ニンテンドーDSiブラウザー 用コピーペースト機能

DSiブラウザー (Opera 9.50) で には コピーペースト機能がついていません。 ので、それを専用ページとブックマークレットで無理やり実装したものです。

サンプル画面:

[コピーペースト編集画面 サンプル画面]

$Id: copypaste.html,v 1.7 2014-05-21 11:48:27+09 kabe Exp $


使用方法

事前準備

コピー

編集

ペースト

編集画面に戻る


使用上の注意


バグらしきもの

内部的にFRAMEやタブでで別ウィンドウを表示している (DSiブラウザ─上ではわからない)所での テキストボックスやリンクを選択→コピー、しようとしても、 そのFRAMEを出したリンク元がコピーされてしまう。 たぶん document.activeElement のバグ。
対処法:一旦、右下ボタン→「www アドレス入力」→[移動] (編集は不要)で、 FRAME状態を解除する。

2ch.netがこの構造なので困ったもんです(どっちが?)


開発メモ

コピーペーストでデータを保持する クリップボード とか ヤンクバッファ といったものは OS とかデスクトップ環境が用意するものですが、 DSiブラウザにはそういうものがないのでコピーペーストができません。 (追加実装するのはそんなに難しくなかったはずですが…)

じゃあコピーペーストに代わる方法として何が使えるか。

DSi的には発想の転換で、「コピーペーストが欲しい」ではなく、 「コピーペーストの結果、結局何をしたいのか」を総合的に考えます。 例えば、「今見てるウェブページのタイトルとURLをtwitterに書き込みたい」 のであれば、そういうブックマークレットを作る、ようにするのが正しそうです。 「リンク先のURLを確認、編集、ジャンプしたい」のであれば そういうブックマークレットを作ります。

これは普通のプログラミングの考え方の (手順要素の分解ではなく、総合) なので、プログラマー肌の人(自分とか)には苦手の考え方ではあります。

それでもやっぱり汎用のコピーペーストが使いたいことはある。どうするか。

複数のウェブページをまたいでデータを保持できるモノは、 DSiブラウザではCookieとブックマークしかありません。ので、 クリップボードとペースト機能はブックマークレットを使うしかない。

Cookieを使うとなると、ウェブページと関連付ける必要があります。 ブックマークレット単体では実現できません。ので、 専用ページを設けて実現することになりました。 専用ページだとブックマークのスクリプト1000文字制限から開放されるので だいぶ作りやすくはなります。

(複数のページをまたいでの編集バッファの保持を放棄すればブックマークレット でも実現できそうですが、すごい使い勝手が悪くなりそう)


かべ@sra-tohoku.co.jp