508文字の制限を超えることは可能か?
InternetExplorer6.0ではブックマークレットの文字数が508文字に制限されています。これを超える文字数を格納するにはどうすれば良いのかを考えます。
(IE7、IE8の制限については未調査です。)
一つ目の方法は、変数名や記述を工夫してソース自体の長さを短くする方法です。しかし、これはメンテナンス性が損なわれる恐れがあり、あまり良いソリューションとは言えません。
二つ目の方法は、外部ソースを動的にインクルードするというソリューションです。
こうすれば、事実上ソースの長さに制限がなくなります。また、ソースを外部化することでBookmarkletを差し替えてもらうことなくソースをバージョンアップすることが可能となるという副次的効果もあります。
外部ファイルにする場合の注意点
InternetExplorerでは、状況によっては外部ソースのインクルードは上手く機能しないようです。古いソースがキャッシュされるからでしょうか?ソースを差し替えてもそれが動作しないのです。
[F5]または[Ctrl]+[F5]を押してみたり、URLアドレスを再入力してみたりしましたが同様でした。一度ブラウザを閉じてから試行した場合には上手くいくようです。
FireFox3.6ではブラウザを閉じなくても上手く機能するようです。
以上のことから、外部ファイルにする場合には、メンテナンスの際には一度ブラウザを閉じてもらうようにユーザーに理解してもらう必要があります。
ad
