CGI-BBS > SO−HO > ショッピングバスケット > 最終画面でscriptエラー


カレッヂ
カレッヂ


質問者 やまなみ  投稿日 8/30(木) 19:59:28
最終画面までは作動するのですが、「閉じる」をクリックしてもリンク先へも移動しないし、画面が閉じる事もありません。ポインターをあてるとアンダーバーに「javascript:OpenER('http://**domain.co.jp/')」とでます。クリックするとScriptエラーと表示されます。何所の設定が悪いんでしょうか?どなたか助けてください。
回答者 呑兵衛  [削除]  投稿日 8/31(金) 00:03:57
呑兵衛@大阪です。

このリンク先は、setup.cgi に記述する
# 終了先の設定 の
$bye = 'http://あなたの設定したページ';
です。

そこの記述を再度確かめてください。
質問者 やまなみ  [削除]  投稿日 9/1(土) 16:40:15
呑兵衛さんありがとうございます。
ご指摘のところは $bey='http://www.****.co.jp/';と入れているのですが???
どうなっているのでしょう?
回答者 呑兵衛  [削除]  投稿日 9/2(日) 01:26:27
う〜〜ん。知らなかったのですが、最後に親子ウインドを閉じる
「 opener.closed 」 メソッドの closed プロパティーは InternetExplorerでは
問題児なんですね。不安定だとMicrosoftも認めてるようです。
お使いのブラウザ、InternetExplorerなんでしょう?

参考までに。
http://support.microsoft.com/support/kb/articles/Q241/1/09.ASP

で、解決法ですが、親子ウインドを同時に閉じ $byeに指定されたページに飛ぶのを
やめ、最初に親ウインドを閉じ、続いて子ウインドの 閉じる をクリックして、
子ウインドを閉じる、なんてやり方です。
もう用事済んだから店じまいみたいで、格好は悪いかもしれません。

変更部分 cart.cgi の最後にある
<SCRIPT language="JavaScript"> から </SCRIPT> までをそっくり下と入れ替えます。

<SCRIPT language="JavaScript">
<!--
function OpenER() {
        var WO = navigator.userAgent
    if(!!window.opener)
      if( WO.indexOf('MSIE 4')!=-1 && WO.indexOf('Win')!=-1)
        return !window.opener.closed
      else return typeof window.opener.document  == 'object'
    else return false
}
if(OpenER()) window.opener.location.href="$bye"
else window.open("$bye","targetName","")
//-->
</SCRIPT>

次に、
<a href="javascript:OpenER('$bye')">閉じる</a>

<a href="javascript:window.close()">閉じる</a>
に替えます。
以上です。
もっとましな提案してくださる方いらっしゃいませんか?



質問者 やまなみ  [削除]  投稿日 9/2(日) 19:57:01
ありがとうございます呑兵衛さん。
最終画面(子ウインド)が無事、閉じるようになりました。
残った親ウインドウにフレームでリンクを付けておけば問題無いと思います。
これでようやく開店の目処が付きました。 

このページは終了したので返信(回答)は書きこめません

Web裏技