CGI-BBS > SO−HO > ショッピングバスケット > ショッピングバスケットプロ6.06フォーム未入力時の「戻る」がネスケ6で動作せず


カレッヂ
カレッヂ


質問者 太田  投稿日 1/7(月) 11:27:20
ショッピングバスケットプロ6.06を試用させて頂いております。
動作確認環境はWin98SE/Me/2KでIE5.5とNetscape4.78並びに6.2です。

こちらのBBSを参照させて頂いてNC4.7でのキャッシュ読取りの問題は解決したのですが、もう1つ動作しなくて困っている場所があります。

●メールアドレスが未記入だった場合に注文フォームに戻る為の「一つ前に戻る」リンク部分です。
 上記においてNetscape6のみ、クリックしても動作しません。<画面変わらず

#IE5.5とNC4.7では動作しました。

 解決方法をご教授頂ければ幸いです。
回答者 呑兵衛@大阪  [削除]  投稿日 1/8(火) 01:15:24
setup.cgi 内の sub error にある
a href="JavaScript:history.back()" が機能しないためです。
この記述ですと、Netscape 6 のバグ(history の配列らしい) のため
history.go() history.forward() もだめなようです。

対策は <head></head> の間に
print qq#<SCRIPT language="JavaScript">\n#;
print qq#<!--\n#;
print qq#function Back() { history.back(); }\n#;
print qq#//-->\n#;
print qq#</SCRIPT>\n#;
を加え、

print qq#<a href="JavaScript:history.go(-1)" target="_self">1つ前に戻る</a>\n#;

print qq#<input type=button value="1つ前にへ戻る" onClick="Back()">\n#;
に変更してみてください。
回答者 呑兵衛@大阪  [削除]  投稿日 1/8(火) 02:06:53
記述ミスです。

print qq#<a href="JavaScript:history.go(-1)" target="_self">1つ前に戻る</a>\n#;
ではなく
print qq#<a href="JavaScript:history.back()" target="_self">1つ前に戻る</a>\n#;
でした。
質問者 太田  [削除]  投稿日 1/8(火) 16:43:50
再び、つまづいております・・・。

教えて頂いた通りに編集してアップしました所、問題のリンク箇所がボタンに変わり、N6でも動くようになりましたが、今度はNC4.7で該当のボタンが表示されないという状態に陥っております。
#IE5.5は動作しました。

Javascriptということでしたので、解説書を購入してきて調べてはいるのですが、自力で解明する次元になかなか到達できなくて・・・すべてお伺いするようで申し訳無いのですが、教えて頂けると非常に助かります。
どうぞ宜しくお願い申し上げます。
回答者 しあわせのツボ  [削除]  投稿日 1/8(火) 16:54:51
NC4の場合、<input>は<form>から</form>の間にないと表示されません。
<form action=""><input type=button …></form> のようにしてみて下さい。

ところが今度はIEが<form>のところで勝手に改行を…
質問者 太田  [削除]  投稿日 1/8(火) 18:06:43
早速のご回答ありがとうございます。
ご指摘頂きました通り、formタグで囲いました。

> ところが今度はIEが<form>のところで勝手に改行を
これは、[一つ前に戻る]ボタンと残り二つの間が改行されて二行に渡ってしまう事と理解して宜しかったでしょうか。
(もしも別の問題を生じるのでしたら、どうぞお教え下さいませ。)
IE5.5とNC4.7、N6全てでこのようになりましたが、初めのボタンと残り二つのテキストリンクに分かれるので、これでよいことにしました。
#レイアウトを考えて、区切りの縦線を最後にもう一つ加えましたが。

これでようやく次の準備に進めます。
お二方、本当にどうもありがとうございました。
回答者 しあわせのツボ  [削除]  投稿日 1/8(火) 19:02:19
http://www.rescue.ne.jp/cgi/faq3.shtml#FAQ48
<form>タグによる改行の問題は、見た目以外には影響しません。
回答者 呑兵衛@大阪  [削除]  投稿日 1/8(火) 19:23:19
クロスブラウザは難しいですね。
ボタン表示をさせず、効果も同じ、ということで、、、、

print "<a href='#' onClick=\"history.back(); return false;\">1つ前に戻る</a>\n";

でいかがでしょうか。
これだと Windoww版 IEの「スクリプトエラーごとに通知する」がチェックされていたら
アラート画面が出てしまうのですが。回避方法はまだ試しておりません。
OKを押せば問題はなく元に戻りますし、上記のチェックがなければ、もちろん元に戻ります。
MAC版 IE でもまだ試せていません。
しあわせのツボさん、フォローよろしく。
回答者 しあわせのツボ  [削除]  投稿日 1/8(火) 20:56:42
Mac版IEでは特にエラーは出ませんでした。(5.1.3 OS Xで確認)
NC4.79とMozilla0.9.7でもOKです。
他のブラウザは確認していませんが。
質問者 太田  [削除]  投稿日 1/8(火) 21:14:25
何から何まで手取り足取りで、済みません。

教えて頂いた様に修正を行い、3つともテキストリンクで表示させるようにしました。
注文して頂く段階になって引っかかる箇所があると痛いので、解決して本当にほっとしました。
クロスブラウザには溜息の出るばかりですが、きちんと皆様に利用して頂ける様にするのはお店側の責任ですから、頑張って作っていこうと思います。
#Macは持っていないので、そちらでの検証も助かりました。

本当に感謝感謝です。ありがとうございました。

返信(回答)する


Web裏技