@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

javascriptを外部ファイルにすると、target指定が効かなくなる

1
投稿者投稿内容
51
常連さん
会議室デビュー日: 2004/05/20
投稿数: 31
投稿日時: 2004-10-14 19:42
いつもお世話になっております。51と申します。

現在、ASP.Net(C#)で開発を行っているのですが、
javascriptで期待通りに動作しなくて困っています。
実現したいことは、以下の通りです。

-----------------------------------------------------
親画面から子画面をopenする際に、
一度、「しばらくお待ちください」のメッセージ画面を表示し、
その後、別のaspxファイルを読み込みたい。
-----------------------------------------------------

現在、下記のような、関数を書いているのですが、
-----------------------------------------------------
//ターゲットを指定
document.frmStaff.target = "StaffWin";
//次に処理を行う画面を指定
document.frmStaff.action = "../Staff/pagSelStaff.aspx";
//待ち受け画面をopenする(Toolバーなどの指定は省略)
window.open("../Common/pagWaitMsg.htm","StaffWin","");
//送信する
document.frmStaff.submit();
-----------------------------------------------------

これを、親画面のaspxファイルに直接書き込むと、
期待通りに動作します。
しかし、jsファイルに記述してリンクすると、
待ち受け画面(pagWaitMsg.htm)は正常にopenしますが、
次に処理を行う画面(pagSelStaff.aspx)は親画面にロードされてしまいます。

いろいろな画面で呼ばれる関数なので、
できれば外部ファイル化したいと思っているのですが、
無理なのでしょうか・・・。

状況が解りやすく記述できているか不安なのですが、
ご教授の程、どうぞよろしくお願い致します。

51
常連さん
会議室デビュー日: 2004/05/20
投稿数: 31
投稿日時: 2004-10-15 10:32
自己レスです。

一応解決しましたので、ご報告いたします。
ちょっと不思議な現象なのですが・・・。
7行目のコメント「送信する」の「る」を削除すると正常に動作するようになりました。
ちなみにこの行以外では「る」を書いても正常に動作します。
文字コードのせいでしょうか??不思議です。
(コメントですので、大丈夫と思っていたのですが・・・)

-----------------------------------------------------
//ターゲットを指定
document.frmStaff.target = "StaffWin";
//次に処理を行う画面を指定
document.frmStaff.action = "../Staff/pagSelStaff.aspx";
//待ち受け画面をopenする(Toolバーなどの指定は省略)
window.open("../Common/pagWaitMsg.htm","StaffWin","");
//送信する  ←---------------------------------------------------ここ
document.frmStaff.submit();
-----------------------------------------------------

取り急ぎご報告まで。
ありがとうございました。
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2004-10-15 11:12
引用:

51さんの書き込み (2004-10-15 10:32) より:
文字コードのせいでしょうか??



もし、HTML部がutf-8でjs部がshift-jisであれば文字化けしますね。

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=10816&forum=7&5

[ メッセージ編集済み 編集者: todo 編集日時 2004-10-15 11:13 ]
1

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