********************編集 2************************ 問題がわかりました。 ..しかし、私はその意味が好きではありません。以前、iPhone を対象としたモバイル アプリケーションをテストし、プラグインを使用して Firefox のユーザー エージェント文字列を iPhone としてマスクしました。
.Net は、その情報だけに基づいて、ポストバックに必要なコードを生成していませんでした。
しかし、私はこれが好きではありません。なぜなら、iPhone やその他のマルチメディア デバイスは JavaScript を解釈できるため、ASP.net は、サーバーで生成された JavaScript を実行することに依存するアプリケーションを壊してしまうからです。
したがって、コミュニティが許可する場合... 公式の質問を次のように変更したいと思います... ASP.net が特定のブラウザ用の JavaScript を生成しないのはなぜですか? また、この「機能」をオフにするにはどうすればよいですか?
**************** エディット終了 2 ****************
奇妙な問題があります。リモートホストから作業中のコンピューターにいくつかの作業コードをコピーしました。ページを使用しようとすると、javascript エラーが発生します
__doPostBack is not defined
javascript:__doPostBack('ctl00$ContentPlaceHolder1$login','')()()
出力ページのソースを少なくすると、確かにサーバー側で生成された JavaScript はありません。
簡単なページを作成してみました:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="jsTest.aspx.vb" Inherits="_jsTest" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:TextBox ID="tbTest" runat="server"></asp:TextBox><br />
<asp:LinkButton ID="linkTest" runat="server">LinkButton</asp:LinkButton>
</form>
</body>
</html>
コードビハインド:
Partial Class _jsTest
Inherits System.Web.UI.Page
Protected Sub linkTest_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles linkTest.Click
Response.Write(tbTest.Text)
End Sub
End Class
同じエラーが発生します。
私は再起動を試みました (ねえ、それは半分の時間で動作します)、App_Code、global.asax、および web.config からすべてをクリアし、autopostback=true のテキスト ボックスを追加しました... アイデアがありません。
ここで何が起こっているのか、誰かが光を当てることができますか?
**************詳細情報**************** IE ですべてを再試行したところ、期待どおりに動作しました。ページのソースには次のように表示されます。
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTkxNTA2MDE2NWRkxhZMwlMVwJprcVsvQLJLrTcgaSM=" />
<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</script>
<div>
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAwK20LZAAuzRsusGAsz0+6YPxxO+Ewv1XsD5QKJiiprrGp+9a3Q=" />
</div>
Firefox のソースのみが表示されますが:
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTkxNTA2MDE2NWRkxhZMwlMVwJprcVsvQLJLrTcgaSM=" />
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAwK20LZAAuzRsusGAsz0+6YPxxO+Ewv1XsD5QKJiiprrGp+9a3Q=" />
ウェブページをデスクトップに保存してメモ帳で開くと、同じことがわかります...