********************編輯2 *************** ******* 我想出了這個問題......但我不喜歡這個問題。我之前正在測試我們的iPhone目標移動應用程序,並使用插件將Firefox的用戶代理字符串屏蔽爲iPhone。ASP.net不爲某些用戶代理生成javascript
.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=" />
保存網頁到桌面開放在記事本中揭示了同樣的事情...
我正在做一些研究......它似乎是你可以用web.config或machine.config中的部分修復的東西。默認情況下,未知瀏覽器被視爲像舊瀏覽器無法使用JavaScript。 –
Birk
2009-05-27 21:02:09