javascriptの試し方、ではアドレスバーでjavascriptを動かす方法を紹介しました。
でも、この方法ではあまり長いコードはかけません。改行文字を削れば理屈の上では何万文字でもいけるはずですが…何万?
本投稿は予定していた話題を唐突に変更しまして、アドレスバーに何文字入れられるのかを検証することになりました。
コピー&ペーストで長文をアドレスバーに貼り付けて、再びアドレスバーからコピーしてみましょう。
もし制限を超えた場合、後ろがちょんぎれた形になるはずです。
では、まず予想してみます。何文字入れられるでしょうか。
1.256文字 2.1024文字 3.65536文字
さて、長文の作り方ですが、メモ帳を開いてaボタンの上に重石を置く、というのがとても魅力的に思えます。
でも、せっかくですからjavascriptで スマート(笑) に挑戦しましょう。
石掘る猫「ごっごる先生、javascript クリップボードについて教えて!」
ごっごる先生「JavaScriptによるクリップボード操作 JScript(Windows版IEのJavaScript実装)のclipboardDataオブジェクトを使うと、「クリップボードのテキスト操作」を簡単に行うことができます。たとえば、CGIやスクリプトで生成した文字列やフォームのテキストボックスの文字列をボタン操作など ...」
一発目で出た創作プログラミングの館さんの情報によると、コピーはclipboardData.setData("Text", "文字列");、貼り付けはclipboardData.getData("Text");でできるようです。それでは早速、やってみましょう。
javascript:clipboardData.setData("Text", (function(){var n=""; for(var i=0;i<10000;i++){n+="a";}return n;})());void(0);
これを実行すると、a大隊1万の兵がクリップボードを占拠するでしょう。
最後のvoid(0);はjavascriptの試し方のコメントにてさんに教えていただきました。ありがとうございます!
続いてアドレスバーに流し込み、今度は右クリックやショートカットでコピーします。
javascript:var n=clipboardData.getData("Text");alert(n.length);void(0);
これで、クリップボードにコピーされた文字数がわかります。なお、ブラウザを2画面開いて先に文字を数えるコードをアドレスバーにコピーしておかないと、「あ…」って切なくなりますので注意が必要です。
では、回答発表!
InternetExplorer6.0では2047文字、FireFox2.0では10万文字でもばっちりでした。(本当はいくつなんでしょうね)
選択肢に正解がなかったです(。ω。)ごめんなさい。
そんなわけで、InternetExplorer6.0を使うなら2000文字くらいにしておくとよいようです。