C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: FramesetのonloadでデータをPOSTで送信


(過去ログ 25 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■11550 / inTopicNo.1)  FramesetのonloadでデータをPOSTで送信
  
□投稿者/ たろ (21回)-(2007/12/17(Mon) 20:10:44)

分類:[.NET 全般] 

環境は、visualstudio2005でc#を使っております。

Framesetのonloadでデータをpost送信しているのですが、
IE5.0の場合だけ、テキストやinputのhiddenの値を取得する部分で「オブジェクトが存在しない」と
エラーになってしまいます。

IE5.5以降では問題なく動作しているのですが、IE5.0では、FrameSetタグとformタグの併用は駄目とかあるんでしょうか?

<ソース>
※document.Sendtest.REQ_TEST1.valueが存在しないといわれる。。

<script language = "javascript">

   function LoadForm()
   {
//パラメータの設定
document.Sendtest.REQ_TEST1.value = document.all["test1Txt"].value;
//データ送信
document.Sendtest.target = "testframe1";
document.Sendtest.action = "test1.aspx";
document.Sendtest.submit();

//パラメータの設定
document.Sendtest.REQ_TEST2.value = document.all["test2Txt"].value;
//データ送信
document.Sendtest.target = "testframe2";
document.Sendtest.action = "test2.aspx";
document.Sendtest.submit();
}

</script>



<frameset id="EditReportFrameset" cols="32%,*" border="1" frameSpacing="0" frameBorder="1" onLoad="LoadForm()">
<frame id="testframe1" name="testframe1" scrolling="auto" noresize>
<frame id="testframe2" name="testframe2" scrolling="no" noresize>
</frameset>
<form id="dispform" name="dispform" method="post" runat="server">
<div style="VISIBILITY: hidden; WIDTH: 0px; HEIGHT: 0px">
<asp:textbox id="test1Txt" runat="server" Enabled="False" Height="0px" Width="0px"></asp:textbox>
<asp:textbox id="test2Txt" runat="server" Enabled="False" Height="0px" Width="0px"></asp:textbox>
</div>
</form>
<form id="Sendtest" name="Sendtest" method="post">
<input id="REQ_TEST1" type="hidden" name="REQ_TEST1">
<input id="REQ_TEST2" type="hidden" name="REQ_TEST2">
</form>

引用返信 編集キー/
■11565 / inTopicNo.2)  Re[1]: FramesetのonloadでデータをPOSTで送信
□投稿者/ mあ@反省中 (34回)-(2007/12/18(Tue) 01:41:38)
No11550 (たろ さん) に返信
> Framesetのonloadでデータをpost送信しているのですが、
> IE5.0の場合だけ、テキストやinputのhiddenの値を取得する部分で「オブジェクトが存在しない」と
> エラーになってしまいます。

<frameset> を document.write() して、<form>はちゃんと<body>タグで囲ったらどうです?

引用返信 編集キー/
■11576 / inTopicNo.3)  Re[2]: FramesetのonloadでデータをPOSTで送信
□投稿者/ たろ (22回)-(2007/12/18(Tue) 09:46:36)
2007/12/18(Tue) 09:48:54 編集(投稿者)

返信ありがとうございます。

<frameset>をdocument.write()にしてみましたが、やはり同じエラーが出てしまいます。
下記にソースを記載しましたが、こんな感じですよね?

<ソース>
※やはりdocument.Sendtest.REQ_TEST1.valueが存在しないといわれる。。

<html>
<head>
<script language = "javascript">

document.open();
document.write("<frameset id='EditReportFrameset' cols='32%,*' border='1' frameSpacing='0' frameBorder='1' onLoad='LoadForm()'>");
document.write("<frame id='testframe1' name='testframe1' scrolling='auto' noresize>");
document.write("<frame id='testframe2' name='testframe2' scrolling='no' noresize>");
document.write("</frameset>");
document.close();

function LoadForm()
{
//パラメータの設定
document.Sendtest.REQ_TEST1.value = document.all["test1Txt"].value;
//データ送信
document.Sendtest.target = "testframe1";
document.Sendtest.action = "test1.aspx";
document.Sendtest.submit();

//パラメータの設定
document.Sendtest.REQ_TEST2.value = document.all["test2Txt"].value;
//データ送信
document.Sendtest.target = "testframe2";
document.Sendtest.action = "test2.aspx";
document.Sendtest.submit();
}

</script>

</head>


<body>
<form id="dispform" name="dispform" method="post" runat="server">
<div style="VISIBILITY: hidden; WIDTH: 0px; HEIGHT: 0px">
<asp:textbox id="test1Txt" runat="server" Enabled="False" Height="0px" Width="0px"></asp:textbox>
<asp:textbox id="test2Txt" runat="server" Enabled="False" Height="0px" Width="0px"></asp:textbox>
</div>
</form>
<form id="Sendtest" name="Sendtest" method="post">
<input id="REQ_TEST1" type="hidden" name="REQ_TEST1">
<input id="REQ_TEST2" type="hidden" name="REQ_TEST2">
</form>
</body>
</html>
引用返信 編集キー/
■11586 / inTopicNo.4)  Re[3]: FramesetのonloadでデータをPOSTで送信
□投稿者/ mあ@反省中 (9回)-(2007/12/18(Tue) 12:08:41)

<script language = "javascript">

function LoadForm()
{

alert(document.forms.length);

var fm = document.createElement("form");

var h1 = document.createElement("input");
h1.type = "hidden";
h1.name = "REQ_TEST1";
h1.id = "REQ_TEST1";
var h2 = document.createElement("input");
h2.type = "hidden";
h2.name = "REQ_TEST2";
h2.id = "REQ_TEST2";

fm.appendChild(h1);
fm.appendChild(h2);

document.body.appendChild(fm);

//<form id="Sendtest" name="Sendtest" method="post">
// <input id="REQ_TEST1" type="hidden" name="REQ_TEST1">
// <input id="REQ_TEST2" type="hidden" name="REQ_TEST2">
//</form>

document.forms[0].REQ_TEST1.value = "OK-NG";
document.forms[0].target = "testframe1";
document.forms[0].action = "http://www.yahoo.co.jp";
document.forms[0].submit();

document.forms[0].REQ_TEST1.value = "OK-OK";
document.forms[0].target = "testframe2";
document.forms[0].action = "http://www.infoseek.co.jp";
document.forms[0].submit();

}

</script>

<frameset id="EditReportFrameset" cols="32%,*" border="1" frameSpacing="0" frameBorder="1" onLoad="LoadForm()">
<frame id="testframe1" name="testframe1" scrolling="auto" noresize>
<frame id="testframe2" name="testframe2" scrolling="no" noresize>
</frameset>




ASP タグのとこはわかんね。

あとは任せます。


引用返信 編集キー/
■11603 / inTopicNo.5)  Re[4]: FramesetのonloadでデータをPOSTで送信
□投稿者/ たろ (23回)-(2007/12/18(Tue) 18:46:06)
返信ありがとうございます。

うまくいきました!

IE5.0〜IE6.0まで問題なく動作しました。
Onload時にformを作成する発想はすばらしいです!

いつもありがとうございます!



解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -