******************** Modifica 2 *************** ******* Ho capito il problema ... Ma non mi piacciono le implicazioni. Stavo testando la nostra applicazione mobile con targeting per iPhone in precedenza e utilizzando un plug-in per mascherare la stringa dell'agente utente di Firefox come un iPhone.ASP.net non genera javascript per alcuni agenti utente
. NET non era infatti in grado di generare il codice richiesto per i postback basati solo su quella parte di informazioni.
Tuttavia non mi piace, perché poiché l'iPhone e altri dispositivi multimediali sono in grado di interpretare javascript, ASP.net interrompe qualsiasi applicazione basata sul javascript generato dal server.
Quindi, se la comunità lo consentirà ... Vorrei cambiare la mia domanda ufficiale su ... Perché ASP.net non genera javascript per browser specifici e come posso disattivare questa "funzione".
*************** End Edit 2 ***************
Ho un problema strano. Ho copiato alcuni codici funzionanti dal mio host remoto al mio computer al lavoro. Quando cerco di utilizzare la pagina che sto ottenendo un errore javascript
__doPostBack is not defined
javascript:__doPostBack('ctl00$ContentPlaceHolder1$login','')()()
Quando ho pochi il sorgente della pagina di uscita, abbastanza sicuro non c'è lato server generato javascript.
Ho cercato di creare una semplice pagina:
<%@ 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>
Codebehind:
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
Ottenere lo stesso errore.
Ho provato a riavviare (hey, funziona la metà del tempo), eliminato tutto da App_Code, global.asax e web.config, aggiunto una casella di testo con autopostback = true ... Sono fuori di idee.
Qualcuno può far luce su quello che sta succedendo qui?
************** Altre informazioni ************** Ho appena provato di nuovo tutto in IE e funziona come previsto, la pagina fonte mostra:
<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>
Mentre la fonte in Firefox mostra solo:
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTkxNTA2MDE2NWRkxhZMwlMVwJprcVsvQLJLrTcgaSM=" />
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAwK20LZAAuzRsusGAsz0+6YPxxO+Ewv1XsD5QKJiiprrGp+9a3Q=" />
Salvataggio delle pagine web sul desktop e l'apertura nel blocco note rivela la stessa cosa ...
Sto facendo qualche ricerca ... Sembra che sia qualcosa che è possibile risolvere con una sezione in web.config o machine.config. Per impostazione predefinita, i browser sconosciuti vengono trattati come vecchi browser incapaci di javascript. –
Birk