すぎたです。

既に解決されているようなので、混乱させる元になるかという気が
しないでもないのですが、データの読み込みというのも面白そう
なので、いくつか作ってみました。

# 以前、どなたか例示されていたと思うのですが、Google の
# fj.comp.lang.javascript が Swen 以来死んだ状態なので・・・

環境
  IE5.5sp2 (5.50.4807.2300)
  Mozilla Firebird 0.7+ Gecko/20031002


               | IE   Gecko
  -------------+----+-------
  1) reload      OK   OK
  2) open-js     OK   OK(なぜエラーが発生するかよくわからず)
  3) open-html   OK   OK(なぜエラーが発生するかよくわからず)
  4) frame       OK   OK(reload時のみ security error)
  5) iframe      OK   OK(reload時のみ security error)
  6) script      OK   NG
  7) innerHTML   NG   NG(なので、ソース無しです)

# IE の方は、とくエラーは発生しません。
# DOM に関しては、試していないです。


共通

  === a.js ===
  var aaa = new Array(1, 2, 3);

  === b.js ===
  var aaa = new Array(4, 5, 6);


1) reload

  === reload.html ===
  <head>
  <script>
  function parseInput(href,sep1,sep2,sep3) {
    if (href == undefined) href = "";
    if (sep1 == undefined) sep1 = "?";
    if (sep2 == undefined) sep2 = "&";
    if (sep3 == undefined) sep3 = "=";

    var url  = href.split(sep1);
    var args = new Array(); // local scope

    args[0] = url[0];

    if (url.length >= 2) {
      var opts = url[1].split(sep2);
      for (var i=0; i < opts.length; i++) {
        var e = opts[i].split(sep3);
        args[e[0]] = (e[1] == undefined ? true : unescape(e[1]));
      }
    }

    if (parseInput.debug) {
      var s = "";
      for (var i in args)
        s += i + ":" + args[i] + "\n";
      alert(s);
    }

    return args;
  }

  var args = parseInput(location.href); // global scope

  function reload(fname) {
    location.href = args[0] + "?data=" + fname;
  }
  function disp(data) {
    var txt = document.getElementById("txt");
    txt.value = data[0];
  }
  function init() {
    disp(aaa);
  }
  </script>
  </head>
  <body onload="init()">
  <script>
  var fname = (args['data'] ? args['data'] : "a.js");
  document.writeln("<script src='" + fname + "'></\script>");
  </script>
  <textarea id="txt">
  </textarea>
  <hr>
  <input type="button" value="a" onclick="reload('a.js')">
  <input type="button" value="b" onclick="reload('b.js')">
  <hr>
  </body>


2) open-js

  === open-js.html ===
  <head>
  <script>
  function load_data(fname) {
    var w = open("about:blank","data","width=400,height=50");
    w.document.open();
    w.document.writeln("<p>just a moment.</p>");
    w.document.writeln("<script src='" + fname + "'></\script>");
    w.document.writeln("<script>");
    w.document.writeln("opener.load_finish(self, aaa);");
    w.document.writeln("</\script>");
    w.document.close();
  }
  function load_finish(w,data) {
    disp(data);
    w.close();
  }
  function disp(data) {
    var txt = document.getElementById("txt");
    txt.value = data[0];
  }
  function init() {
    load_data('a.js');
  }
  </script>
  </head>
  <body onload="init()">
  <textarea id="txt">
  </textarea>
  <hr>
  <input type="button" value="a" onclick="load_data('a.js')">
  <input type="button" value="b" onclick="load_data('b.js')">
  <hr>
  </body>


3) open-html

  === open-html.html ===
  <head>
  <script>
  function load_data(fname) {
    open(fname,"data","width=400,height=50");
  }
  function load_finish(w,data) {
    disp(data);
    w.close();
  }
  function disp(data) {
    var txt = document.getElementById("txt");
    txt.value = data[0];
  }
  function init() {
    load_data("a.html");
  }
  </script>
  </head>
  <body onload="init()">
  <textarea id="txt">
  </textarea>
  <hr>
  <input type="button" value="a" onclick="load_data('a.html')">
  <input type="button" value="b" onclick="load_data('b.html')">
  <hr>
  </body>

  === a.html ===
  <head>
  <script>
  var aaa = new Array(1, 2, 3);
  function finish() {
    opener.load_finish(self, aaa);
  }
  </script>
  </head>
  <body onload="finish()">
  <p>just a moment.</p>
  </body>

  === b.html ===
  <head>
  <script>
  var aaa = new Array(4, 5, 6);
  function finish() {
    opener.load_finish(self, aaa);
  }
  </script>
  </head>
  <body onload="finish()">
  <p>just a moment.</p>
  </body>


4) frame

  === frame.html ===
  <frameset cols="100%,*" frameborder="no">
  <frame name="main" src="frame-main.html">
  <frame name="data" src="about:blank">
  </frameset>

  === frame-main.html ===
  <head>
  <script>
  function load_data(fname) {
    top.data.document.open();
    top.data.document.writeln("<script src='" + fname + "'></\script>");
    top.data.document.close();
    setTimeout("disp(top.data.aaa)", 0);
  }
  function disp(data) {
    var txt = document.getElementById("txt");
    txt.value = data[0];
  }
  function init() {
    load_data('a.js');
  }
  </script>
  </head>
  <body onload="init()">
  <textarea id="txt">
  </textarea>
  <hr>
  <input type="button" value="a" onclick="load_data('a.js')">
  <input type="button" value="b" onclick="load_data('b.js')">
  <hr>
  </body>


5) iframe

  <head>
  <script>
  function load_data(fname) {
    data.document.open();
    data.document.writeln("<script src='" + fname + "'></\script>");
    data.document.close();
    setTimeout("disp(data.aaa)", 0);
  }
  function disp(data) { // local scope
    var txt = document.getElementById("txt");
    txt.value = data[0];
  }
  function init() {
    load_data('a.js');
  }
  </script>
  </head>
  <body onload="init()">
  <textarea id="txt">
  </textarea>
  <hr>
  <input type="button" value="a" onclick="load_data('a.js')">
  <input type="button" value="b" onclick="load_data('b.js')">
  <hr>
  <iframe name="data" style="height:0; display:none"></iframe>
  <!-- どちらでも可
  <iframe name="data"
    style="height:0; left:0; top:0; position:absolute; visibility:hidden">
  </iframe>
  -->
  </body>


6) script

  <head>
  <script>
  function load_data(fname) {
    var data = document.getElementById("data");
    data.src = fname;
    setTimeout("disp(aaa)", 0);
  }
  function disp(data) { // local scope
    var txt = document.getElementById("txt");
    txt.value = data[0];
  }
  function init() {
    load_data('a.js');
  }
  </script>
  </head>
  <body onload="init()">
  <textarea id="txt">
  </textarea>
  <hr>
  <input type="button" value="a" onclick="load_data('a.js')">
  <input type="button" value="b" onclick="load_data('b.js')">
  <hr>
  <script id="data" src="a.js"></script>
  </body>

# 書いてる途中でちょっと編集したので、間違ってたらご容赦ください。


ちょっと関係ないですが、Gecko で、フレーム内で iframe を利用し、
onload で document.write() を利用して初期化しようとすると、
document.close() しているにもかかわらず、読み込みが終了しない
という現象が発生していました。
button 等の onclick か、フレームでなく直接開いた場合の初期化
の場合は問題なかったです。

-- 
杉田
sugi-nws@bk.iij4u.or.jp