私は非常に混乱していることを告白しなければならず、この問題を解決するために何時間も検索しました. Android デバイスにのみ影響を与えるように見えるため、特にイライラします。Windows (Chrome、Safari、FireFox、IE)、Mac、および iPhone では問題なく動作します。シナリオは次のとおりです。
JavaScript が埋め込まれた標準の HTML ページがあります。
<script language="javascript">
function doSubmit()
{
// some processing occurs here then the form gets submitted
document.myForm.submit();
}
</script>
. . .
<form id="myForm"
name="myForm"
action="/foo/bar/Default.aspx"
method="POST"
enctype="application/x-www-form-urlencoded"
target="about:blank"
onsubmit="window.open('', this.target);" >
<!-- Data Entry Fields here... ->
. . .
<!-- Hidden Fields here... ->
<input type="hidden" id="value1" name="value1" />
<input type="hidden" id="value2" name="value2" />
<input type="hidden" id="value3" name="value3" />
</form>
<input type="button" onclick="doSubmit()" value="Click Me">
Default.aspx が開かれ、次のチェックが行われます。
protected void Page_Load(object sender, EventArgs e)
{
try
{
NameValueCollection nvc = Request.Form;
string frmValue1 = nvc["value1"];
string frmValue2 = nvc["value2"];
string frmValue3 = nvc["value3"];
//
if (frmValue1 == null)
frmValue1 = "{Blank}";
if (frmValue2 == null)
frmValue2 = "{Blank}";
if (frmValue3 == null)
frmValue3 = "{Blank}";
//
sMsg = string.Concat(sMsg, string.Format("Value1: {0}", frmValue1), "|");
sMsg = string.Concat(sMsg, string.Format("Value2: {0}", frmValue2), "|");
sMsg = string.Concat(sMsg, string.Format("Value3: {0}", frmValue3), "|");
//
Response.Write(sMsg);
Default.aspx ページが Android デバイスでレンダリングされると、すべての値が次のように返されますnull
(ページに "{Blank}" として出力されます)。また、jQuery 構造化送信を使用してフォームを送信しようとしました$("#myForm").submit();
が、結果は同じです。
あなたが提供できるどんな助けも大歓迎です。
ティア!