Object.eval()
eval()は文字列引数code中のJavaScriptコードを実行します。このメソッドは、eval()グローバル関数と同様の振る舞いをしますが、グローバルにコードを評価するのではなく、objectのスコープで評価します。
JavaScript - Object.eval()
へーへーへー。Objectにもeval
メソッドがあるんだね。しかもスコープがObjectになるとは。
// グローバル関数のeval() eval('var hoge = "hogehoge";');
ってやっても、後からhogeを参照できないけど、
// Object.eval() window.eval('var hoge = "hogehgoe";');
は、グローバル変数入りしてくれる事には何となく気付いていたけど、こういう事だとは知らなかった。
var str = document.getElementById('input'); window.opener.eval( str );
とかやると、親ウインドウをいろいろ操作できそう。スコープを変えられると、いろいろ悪さが出来そうで怖くもあるな。やっぱり、eval is evil
というか、JavaScriptのサイト、やっぱりO'REILLYのJavaScript本の付録CDの内容じゃないか。公開して大丈夫なのか...?