どうでもいいメモ。PCサイトビューアで eval() する場合、その文字列長は 2^18 = 262144 付近まで OK。
今作ってる bookmarklet の動作がおかしくて、eval() に文字数制限があるのかと疑ったけど・・・これだけ長い文字列を eval() できってことは違うっぽい。
(2006/09/26 追記)
原因判明。どうも eval() 内でループ用変数を置き換えてるのが問題っぽい。
(function() {
var l = document.scripts.length;
for (var i = 0; i < l; i++) {
eval(document.scripts[i].text);
}
})()
みたいなことをやってたんだけど、eval 内部で l とか i とかが変更されていた、と。
(function() {
var l = document.scripts.length;
for (var i = 0; i < l; i++) {
Function(document.scripts[i].text).apply(window);
}
})()
こんな感じでよさげ。
window は省略できそうだけど、まぁいいや。