掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ジャバスクリプトのリンク先を取得するには? (ID:102783)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
具体的な目的としては「このリンクをクリックした結果表示されるページのURLを、クリックせずに(遷移せずに)プログラムで取りたい」ってことでよろしいでしょうか? それ前提で進めるので違っていたらごめんなさい。 まずこれってASP.NETのページじゃないででしょうか? そうなるとポストバックの挙動を理解する必要があるかと。 ポストバックはHTMLの挙動としては単純に自分にPOSTしてるだけ(PostBackUrl指定している場合はそっちへ)なので、JavaScriptを解析してそのアドレスを追ってもあまり意味がない。 処理の結果どう遷移するかはサーバー再度の処理(場合によってはそれに組み合わされたクライアント再度の処理)に掛かっており、多くはリダイレクトで別ページに飛ばす。 つまり、実際に遷移させてみるまで、クライアントサイドだけではリンク先を取得することは不可能な場合があるということ。 ASP.NETのページが自分で作ったものであるなら、どこか別の場所にHiddenFieldを置いてそこにURLを書いておいてあげるとかの方がいいかも。 そうじゃない場合は要件を見直した方がいいかもです。 無理矢理取るために見えないところで遷移させるにしても、サーバー側にリクエストを送るという行為自体がその後の挙動に影響しないとは言えない、その操作自体の是非も考える必要があるためです。 ※例えばデータベースが絡む画面であれば、遷移自体がデータに影響与える可能性がある こういうところを念頭に置いて、再度要件練った方が良いかと思います。 私も似たような処理を依頼されたことがあり、その時はASP.NET側も別チームが作っていたので、クライアントサイドに移動先のページを渡すHiddenFieldを置いてもらって対応しました。 ----- アドレスバーに貼り付けて動作したのは、表示中のページを使用して動作したため、__doPostBack が正常に動作したと思われます。 サーバーサイドの処理も走ったのではないかと思います。 Navigateメソッドでも同様な結果になるはずですが、メソッドを呼んだ際は既に該当ページはロード済み(readyState=='complete')でしたか? ページをロードせずに単にNavigateメソッドを呼んだしていないでしょうか。 ----- 何にしても前提が違っていたら外れている話ですので、そのあたりも確認してください
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.