Если вы можете поместить весь свой код в один файл (скажем, с помощью сценария оболочки, который вызывает «cat»), это может сработать:
window.realWindow = window;
(function(){
var window = {document: {something: "hi!"}};
var document = window.document;
///////////////////////////////////
// your code goes here, for example:
function test (foo) {
alert (document.something + " " + foo);
realWindow.document.title = foo;
}
test("from inside");
// to make the function "test" reachable from the outside
realWindow.global_test = test;
///////////////////////////////////
})();
global_test("from outside");
Теперь ваши глобальные переменные не будут настоящими глобальными, но к «окну» можно получить доступ из любой точки, и это будет ваша собственная версия. Обратите внимание, что это нарушит некоторые конструкции и затруднит доступ к вещам «извне» .... но во многих случаях это может сработать без каких-либо изменений в вашем коде.
Редактировать: добавить пример того, как получить доступ к чему-либо извне функционального блока