- PR -

フレーム画面でのTargetの設定について

1
投稿者投稿内容
SQ☆ふみ
常連さん
会議室デビュー日: 2003/07/11
投稿数: 32
投稿日時: 2004-10-05 16:21
お疲れさまです。
いつも参考にさせていただいてます。

VB.NETです。助けてください!!!
フレームで画面を上下に分けて、
上は「header」、下は「main」と名付けました。

上のheader部は、メニューボタンを並べて、クリックすると
下のmain部に指定した画面を出しています。

で、問題なのは、header部の一番右のボタンだけは、
メニューの切り替えボタンとして使いたいのですが、
<base target="main"> って書いているので
main部にメニューボタンが表示されてしまいます。

target は ボタンごとに設定できませんか?ね・・・
焼きそば
ベテラン
会議室デビュー日: 2002/11/06
投稿数: 86
お住まい・勤務地: 東京
投稿日時: 2004-10-05 16:31
焼きそばです。

引用:

SQ☆ふみさんの書き込み (2004-10-05 16:21) より:

で、問題なのは、header部の一番右のボタンだけは、
メニューの切り替えボタンとして使いたいのですが、
<base target="main"> って書いているので
main部にメニューボタンが表示されてしまいます。

target は ボタンごとに設定できませんか?ね・・・




javaScriptのonclickイベントでtargetを変更してあげるとか。
コード:
function chgTarget()
{
  f = document.forms[0];
  f.target = "header";
  f.submit();
}



ただし、.NET環境がないため動作確認などしておりません。
参考情報程度に捉えてください。

SQ☆ふみ
常連さん
会議室デビュー日: 2003/07/11
投稿数: 32
投稿日時: 2004-10-06 11:49
焼きそばさん、ありがとうございます!

教えていただいた通りJavaScriptを入れてみたのですが(そのままコピペ)
chgTargetが画面のメンバでは無いと言われて
うまく実行できませんでした。

で、試行錯誤した結果
Page_Load時にボタンのAttributesで"target"を設定すると
そのボタンだけ"target"が変更できるようでしたので
今回は、それで行こうと思います。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2004-10-06 13:41
引用:
教えていただいた通りJavaScriptを入れてみたのですが(そのままコピペ)
chgTargetが画面のメンバでは無いと言われて
うまく実行できませんでした。

これをどこに書きましたか。該当ボタンにonclick=chgTarget()のようにしたら
そのボタンだけtargetが変わるようになりましたよ。

どのように画面遷移させてるのかわかりませんが(Response.Redirectとか)
もし、ボタン押下の際にheader側のサーバ処理が必要ないのなら(画面がきりかわる
だけでよいのなら)postbackしないようにしてボタンに
onclick="parent.フレーム名.location.href='遷移先url'
とか、ハイパーリンクにするとかでもいいと思います。

引用:
Page_Load時にボタンのAttributesで"target"を設定すると
そのボタンだけ"target"が変更できるようでしたので

これで、該当ボタンのみtargetをかえられました?inputタグにtargetがつくだけなので
効かないような気がしたのですが。

[追記]
あ、リンクボタンでしたか。リンクボタンだと<a>タグになるからtargetをうまく
指定できるのですね。本質的には焼きそばさんが紹介してくれた方法と同じですね。

リンクボタンで onclick=chgTarget() だと hrefに自動でスクリプトがはいるのと
<base target="main"> の関係のせいか、たしかにうまくいかないですね。

[ メッセージ編集済み 編集者: べる 編集日時 2004-10-06 17:50 ]
SQ☆ふみ
常連さん
会議室デビュー日: 2003/07/11
投稿数: 32
投稿日時: 2004-10-06 17:07
べるさん、こんにちは!
アドバイスありがとうございます!

chgTargetは、<HEAD>部に書きました。

あと、ボタンってリンクボタンです。
紛らわしくてスミマセン。

リンクボタン.Attributes("target") = "header"
リンクボタン.Attributes("OnClick") = "javascript:document.Form1.target='header'"

って書いたら、うまく動いているようです。

画面遷移は、Server.Transferです。
どのボタンで、どの画面に移動するかは、
押した人の権限によって違うのでPostBackは必要です。
1

スキルアップ/キャリアアップ(JOB@IT)