CGIで出力したページ内の特定位置に自動でジャンプするには?

[上に] [前に] [次に]
イニT [E-Mail] [HomePage] 1999/07/13(火) 15:14:06
はじめまして、イニTと申します。m(_ _)m

自ページ内の特定位置にジャンプするには、
<A Name="Hoge"></A>
<A Href="Hoge#Hoge"></A>

と記述すれば出来るのは解るんですが、
CGIで出力したページが表示された時に
自動で<A Name="Hoge">で定義した
特定の場所へ移動する方法を探してます。

JapvaScriptでlocation.hashを使っ関数を
BODYタグのonLoadで呼んで見たんですが、
上手い具合にいきません。(^_^;)

何かヒントでも得られればと思って投稿しました。
宜しくお願い致します。m(_ _)m

まる高 1999/07/13(火) 15:47:47
いいところまでいってましたよ。
print "<BODY onLoad=\"window.location.href='#RECORD'\">\n";
:
:
print "<A NAME=\"RECORD\"></A>\n";
のようにすれば旨くいくはずです。

hashは使ったことがないのでわかりませんね。

ST 1999/07/13(火) 15:48:41
外部から呼び出す場合は
<a href="foo.cgi#Hoge"></a>

CGIで処理後に開くなら
print "Location: foo.cgi#Hoge\n\n";

でいいのではないでしょうか。

ST 1999/07/13(火) 15:50:24
あ、そっか。
質問の意味が分かりました。この場合は使えないですね。すみません。

無責任官庁 1999/07/13(火) 16:16:16
恐らく、CGI出力のHTMLを最後まで読み切らないうちに、
onLoad が動いてしまうから、だと思いますが・・・

#違ったかなぁ?(^_^;)
#でも、デカイのをCGIで出力すると、こういうの
#あったような・・・

なので、onLoad はやめてCGI出力の最後の方、
print "</HTML>"; の直前に、

<script language=JavaScript>
<!--
location.href="#Hoge";
もしくは、
location.hash="Hoge";
-->
</script>

を出力したらどうでしょ。
onLoad がうまくいくようなら、聞き流してください(^_^;;)

#もしかしたら、location.hashの場合は、# を付けないとか、
#そういうのだけかも・・・
#とほほさんのリファレンスのミス(?)発見!(^-^;)

イニT [E-Mail] [HomePage] 1999/07/13(火) 16:50:04
まる高さん、STさん、こんにちは。(^-^)
早速のご回答ありがとうございます。m(_ _)m

当初は、STさんの方法でhoge.cgi#hogeとしようと
思ったんですが、全く反応しない為、cgiでは
出来ないものと判断して、次の方法である
自分のページ内へのジャンプに方向転換を図りました。
で、当初は、window.location.hrefを使った関数を
onLoadでコールしたんですが、何度もリロードされる
様な感じになってしまい、hashに変更したんですが、
現象が改善されず行き詰まったので質問させて頂きました。m(_ _)m

前置きが長くなりましたが、どうやらIE3.0xの問題の様です。(^_^;)
Win95+IE30x/WinNT4.0+IE4.01な環境を使用して
いるので、試しにNTの方でやってみたら、
どちらの方法でも問題なくジャンプする事が出来ました。(^^;)

IE3.0xの問題もあるので、hoge.cgi#hogeの方で
実装しようと思ってますが、何か他に良い方法が
あれば、ご教授下さい。m(_ _)m

出来れば、はIE3.0x/IE4.0x/NC4.51では、
同一の動作が出来る様にしたいと考えてます。

イニT 1999/07/13(火) 16:57:23
追加情報です。

スタイルシートを使っているんですが、
この部分を外すと、IE3.0xでもhoge.cgi#hogeで
出力後にジャンプ出来る様になりました。(^_^;)

window.location.herfの方は、ジャンプをする様には
なったんですが、相変わらず無限にリロードを
繰り返してます。(^_^;)

イニT 1999/07/13(火) 17:23:11
無責任官庁さん、こんにちは。(^-^)

私も当初は、htmlが表示しきらない内に
ジャンプをしようとしておかしな事になってるのか?
と思ってたんですが、そぅでも無い様です。(^_^;)

早速、教えていただいた方法を試したんですが、
結果は、onLoadの時と同じ症状です。<IE3.0x
#何度も、何度もリロードされてしまう・・・ヽ( ´ー`)丿

仕事でVisualBasicを使ってる関係で、
IE3.0xは無視出来ない、と言うか捨てられないので
取りあえずは、hoge.cgi#hogeで逃げる事にします。

余談ですが、仕事でVisualInterDev6.0を使った
イントラのWebアプリを少し前に作ったんですが、
ブラウザをIE4.0xに限定しちゃいました。(^^;)
が、今度のは半分趣味なので、そぅも言えません。(笑)
しかし、世のWebアプリの製作者は大変ですね。
インターネット上で使われるブラウザであらかた
動作確認するなんて・・・(−人−)

[上に] [前に] [次に]