外部に公開する場合に
IEのヴァージョンにより動作が変わる為に
動作環境を確認して対応している場合には
全てのテストが必要です。
またIE以外の環境でも動いて欲しいという場合があります。
今回はMacについて説明したいと思います。
サブウインドウや親ウインドウが開いていないときにそれらを操作しようとした場合に発生するエラーを回避するために、
普通はその存在を確認する「closed」が使われます。ところが、
この実装がブラウザによってまちまちなため逆にエラーの原因となる場合が少なくありません。
この関数は、ほんの数行の関数ですが、
opener や closed をむき出しで使った時の、
 Win版IE4や5のバグによるエラー発生やMac版IE4.5の実装違いによるエラーなどを大幅に減らすことが出来ます。 
子ウインドウから親ウインドウを調べたい時は win_closed(window.opener) と書いてください。  
 
<script language='JavaScript'>
/***************************************************************************************************
*   :is_opener
*   :子ウインドウチェック
*引 数:
*戻り値:子ウインドウ(winVar)が開いていれば false閉じていればtrue が返ります。
*更 新:2007/06/24 ntakayama@ilovex.co.jp
***************************************************************************************************/
  function is_opener(winVar) {
      var ua = navigator.userAgent;
      if(!!winVar)
          if( ua.indexOf('MSIE 4')!=-1 && ua.indexOf('Win')!=-1 ) 
               return !winVar.closed
          else return typeof winVar.document  == 'object'
      else return false
  }
<!--  //--親または子ウインドウの有無確認関数   function win_closed(winVar) {
  /* 子ウインドウから親ウインドウを調べたい場合は   win_closed(window.opener) と書いてください 
    var ua = navigator.userAgent
    if( !!winVar )
        if( ( ua.indexOf('Gecko')!=-1 || ua.indexOf('MSIE 4')!=-1 )&& ua.indexOf('Win')!=-1 )
              return winVar.closed
        else return typeof winVar.document  != 'object'
    else return true  }  //--サブウインドウを開く
  function openwin(targetName){
    win1 = window.open('',targetName
                     ,"top=0,left=0,width=200,height=300,resizable");    //--サブウインドウ用HTML作成
    var subwinhtm="<form>
"                  "<input type='button' value='Close'"
                  "         onclick='self.close()'>
"                  "</form>
"      //--サブウインドウへ上記HTMLを書き出す
      win1.document.write(subwinhtm)
      win1.document.close()
      win1.focus()  }//-->
</script>
<form>
<input type="button"         onclick="if(win_closed(window.win1))openwin('a')"         value="サブウインドウオープン">
サブウインドウwin1が閉じていれば開き、閉じていなければ何もしない。</form>
