プロが教えるわが家の防犯対策術!

こんにちは。

以前
http://oshiete1.goo.ne.jp/kotaeru.php3?q=725989
で現在表示中の指定した座標へリンクする方法で
<A href="javaScript:scroll(x,y)">●●</a>
を教えて頂きました。
これを応用して別ページの指定した座標へリンク
できるようにしたいと思い、
<A href="javaScript:index.asp#scroll(x,y)">●●</a>
と指定を変えてみたのですが、うまくいきません。
別ページはaspなのですが、別ページへは座標指定で
リンクはできないのでしょうか?
どなたかご存知の方は教えて下さい。
よろしくお願いします。

A 回答 (2件)

こんにちは。

ふたたびです。

<SCRIPT language="JavaScript">
<!--
function OpenWin1(){
win=window.open("index.asp","_self");
  win.MoveTo(300,450)
}
// -->
</SCRIPT>

なんだ~、できてるじゃないですか!?
あと一歩ですよ。
なんだかこちらのほうが(私が言ってたのより)、
いいと思いましたのでクエリの件は一度忘れてください。
まずは、これを修正しましょう。

この場合、openメソッドで新しいwindowを開き、
新しいwindowオブジェクトをwinに代入しています。
そのwindowオブジェクトのMoveToメソッドを使って・・・
と行きたいところですが、ここでエラーになっていると思います。
windowオブジェクトのメソッドはMoveToではなく
moveToです。
さらにこのメソッドは、開いたウィンドウ自体を画面上の指定した位置に移動させるメソッドです。
Mをmに直して動かせばわかると思います。

しかし、これではやりたいことをできてません。
そこで、以前使っていたscrollを使いましょう。
単純にmoveToをscrollに変更するだけです。
これで、スクロールできたのではないでしょうか?

ここでこの方法は実は、リンクしているのではなく、
新しいウィンドウを開いています。
見る分にはかわりないんですが・・・。

クエリとは、キーと値の組み合わせなんですが、
よくいろんなページをみていると、URLの中に
http://・・・・・?key=3&value=5
のようなものが、出てくると思います。
この?以降がクエリ文字列です。
?の後に自分で決めた変数名と値の組み合わせを指定することができます。
これに、座標を表わすキーと値をリンクに埋めることで、
今回のことが実現できると考えましたが、ここから
ASPで受け取るためにはVBScriptを書く必要があります。

ですので、その説明が多くなることと、
より混乱させてしまう恐れがあること、
との理由から今回は省略させてください。
ASPを勉強されているのでしたら、きっとVBScriptも
必要になってきますので、頑張ってください。

これで、解決できるとうれしいです。

この回答への補足

おはようございます。
わかりやすく解説して頂き、うれしいです。
ありがとうございます。
クエリについては追々勉強していきたいと思います。

早速Move.Toをscrollにして
<SCRIPT language="JavaScript">
<!--
function OpenWin1(){
win=window.open("index.asp","_self");
win.scroll(300,450);
}
// -->
</SCRIPT>
↑こんな感じで直してみたのですが、
やはりindex.aspには戻るのですが座標までは
みてくれません。何が原因なのでしょうか?
再度教えてください。よろしくお願いします。

補足日時:2004/01/20 09:29
    • good
    • 0

こんにちは。



以前のご質問も参照させていただきました。
まず、
<A href="javaScript:index.asp#scroll(x,y)">●●</a>
をやってみたという事ですが、構文自体が誤っています。
scroll()は、javaScriptの関数です。
自分では定義した覚えがないと思いますが、
javaScript:scroll(x,y)と指定することで、関数を
呼び出した、という事になります。
ここで、scroll()は、間単に言えば、最初から
機能として持っている関数で、いつでも使えます。

次に、
<A href="javaScript:index.asp#scroll(x,y)">
と指定したことで、index.asp#scroll(x,y)のような
関数を実行させる命令をしたことになります。
しかし、それは定義していないので何も起きないという結果となります。

本題の、別ページの指定した座標にリンクするためには
その新しいページに、希望している座標を知らせてやる必要があります。
縦、もしくは横だけのスクロールの位置を指定するだけなら
アンカを埋めるだけで解決できそうですが、
縦にも横にも長い画像なんですよね!?

そうなると知らせる方法としては、クエリで渡すのが
スマートでしょう。
受け取る側のページはASPですので、ページのロード時に
座標を解釈して、そこへ移動させるのがいいのでは
ないでしょうか?

この回答への補足

こんにちは。ご回答ありがとうございます。

そうなんです。縦にも横にも長い画像なので
どうしてもxy座標を指定したいのです。

<SCRIPT language="JavaScript">
<!--
function OpenWin1(){
win=window.open("index.asp","_self");
  win.MoveTo(300,450)
}
// -->
</SCRIPT>
としてリンク元には
<A href="javascript:OpenWin1()">●</a>
としてみましたが、index.aspにリンクはできたの
ですが、座標までは移動しませんでした。

blue_murderさんのおっしゃる

>クエリで渡すのがスマートでしょう。
>受け取る側のページはASPですので、ページの
>ロード時に座標を解釈して、そこへ移動させる
>のがいいのではないでしょうか?

とはどのような方法になるのですか?
初心者なもので初歩的なことを質問していると思いますが再度教えてください。よろしくお願いします。

補足日時:2004/01/16 19:10
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!