- PR -

Webフォーム、新しいウィンドウで開くでエラー

投稿者投稿内容
hit
常連さん
会議室デビュー日: 2004/04/01
投稿数: 44
投稿日時: 2004-04-06 15:44
Webアプリケーションをvb.netで作成しています。
たとえば、LinkButtonをWebフォームにはりつけ、
デバックを開始し、そのLinkButtonのところで、マウス右クリックから、
「新しいウィンドウで開く」を選択すると、
__doPostBack('LinkButton1','')のところで、
「Microsoft JScript実行時エラー:オブジェクトを指定してください。」
のエラーが発生してしまいます。
解決方法を教えてください。よろしくお願いします。
アティ
ベテラン
会議室デビュー日: 2003/08/14
投稿数: 91
お住まい・勤務地: KANAGAWA
投稿日時: 2004-04-06 15:56
新しいウィンドウで開かなければOKです。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-04-06 16:02
そのリンクはあるURLへのリンクではなく、Clickしたことで動くJavaScriptでサーバー側にポストバックし、サーバー側で処理を行っているようになっています。
ですので、新しいウィンドウで開くことはできません。Clickしなければなりません。
リンクボタンではなくリンクを使えばOKです。


------------------
あ、「新しいウィンドウで開くことはでき(ない)」というのは、ユーザーが選択することはできないという意味でして、初めから新しいウィンドウで開くように指定しておくことはできます。
<form>タグのtarget属性をしてしてやればOKです。
ま、これをやると他のボタンに関しても新しいウィンドウが開いてしまいますが・・・

[ メッセージ編集済み 編集者: 一郎 編集日時 2004-04-06 16:18 ]
hit
常連さん
会議室デビュー日: 2004/04/01
投稿数: 44
投稿日時: 2004-04-06 16:22
すいません。ちょっと説明が足りなかったのですが、
LinkButtonをたくさん並べているのですが、
使用者が誤って、「別のウィンドウを開く」をやってしまう場合の対策を考えてます。
右クリックでメニューが開かないとか、
もともとの質問のエラーを出さずに、何もせず終わってくれるようにするための方法があれば、
教えて欲しいのですが、よろしくお願いします。

一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-04-06 16:38
IEであれば、JavaScriptのdocument.oncontextmenuというイベントの時に呼び出される関数でfalseを返せば右クリックのメニューは出なくなると思います。

多分IEだけだと思いましたが・・・・

[ メッセージ編集済み 編集者: 一郎 編集日時 2004-04-06 16:43 ]
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2004-04-06 17:00
ButtonかImageButonを使えば、別のウィンドウを開けません。
hit
常連さん
会議室デビュー日: 2004/04/01
投稿数: 44
投稿日時: 2004-04-06 17:10
oncontextmenuでfalseを返すようにして思ったことができました。
ありがとうございます。
今回は、LinkButtonを使わざるを得ない事情があるのでそのようにします。
He
大ベテラン
会議室デビュー日: 2002/12/18
投稿数: 141
投稿日時: 2004-04-06 21:40
ちょっと気になったのですが、
引用:

使用者が誤って、「別のウィンドウを開く」をやってしまう場合の対策


ということなのであれば、「Shiftキーを押しながらクリック」のパターンも考える必要があるのではないのでしょうか?
回避方法はわかりませんが。
# イベント発生時にevent.shiftKeyをチェックとかかなぁ。
この手の処理は考え出すとキリがないですね。
ある程度で「制限事項」として逃げてしまうのが得策だと、個人的には思ってます。

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