すべてのウィンドウオブジェクトにアクセスする任意のJavaScriptファイルを取得するスクリプトを作成しています。したがって、私は必要な結果を得るためにウィンドウオブジェクトを偽装したいと思っています。必要なモジュールがローカルスコープにアクセスできるようにする
// arbitrary.js
var foo = window.bar;
-> Error: window undefined.
したがって、モジュールのローカルスコープにウィンドウオブジェクトを挿入します。私はarbitrary.jsは、特に私は置けばそれは問題ではないので、「ウィンドウ」ではなく「global.window」にアクセスしようとするので、これは動作しませんarbitrary.js
// server.js
global.window = {...};
require('./arbitrary");
の編集アクセス権を持っていないふりグローバルオブジェクト上のオブジェクト。私はオブジェクトを任意の.jsスコープに挿入できないようです。
これを達成する方法を知っている人はいますか?たぶん、私はそれが含まれてスコープ内で実行するarbitrary.jsコードを取得する "必要"とは別の関数を使用する必要がありますか?私はこれを行う方法を見つけていない。何らかの方法でeval()を使うべきですか?
@ jfriend00本当に?私はそれを避けることを本当に望む。 – Willem
私は何かを逃しているに違いないが、あなたが描写したものは「ただ働く」べきである。ちょうど確認するために、あなたはノードでこれを実行していて、それをブラウジング/ブラウザーに入れないのですよね? –
@ go-olegこれはNode(6.1.0)で実行しています。基本的に私はwindow = global.windowを実行することができ、それが動作します。それは、グローバルを「ボトム」スコープと見なすのではなく、グローバルオブジェクト自体にアクセスできるようです。それは奇妙だ。 – Willem