[英]C# ASP.Net autocomplete with Javascript/Json post not working
[英]Post back not working in Firefox for asp.net(C#) pages
我對 mozilla firefox 有問題。
我正在使用 asp.net 語言開發一個網站,並且我在表單中有一個按鈕。 當我單擊 onclick 屬性上的按鈕時,我正在調用一個函數,並且該函數執行回發。
這個 Scenerio 正在使用 chrome 和 internet exploerer。 但它不適用於 mozilla firefox。 我在控制台中收到此錯誤:TypeError:對嚴格模式調用函數的訪問被審查..
我的示例按鈕是:
<input id="Button1" type="button" onclick="sampleFunc('sample');" value="button" />
我的示例函數是:
function sampleFunc(reqMessage)
{
__doPostBack('', reqMessage);
}
我在互聯網上搜索。 很多人都有rhis問題,但沒有任何解決方案。
你有關於這個錯誤的任何解決方案嗎(!)
編輯 1:我在 jquery 網站上找到了一張票。 根據勾選,你修復了那個錯誤。 但我應用了相同的解決方案,但我的錯誤仍在繼續。 :(
ASP.Net ScriptManager 代碼使用 __doPostBack 中的“caller.callee”遍歷調用堆棧以檢測無限遞歸。 如果調用堆棧中的任何函數被解析為“使用嚴格”,那么在 FireFox 上將失敗。 解決方法是讓一個“use strict”范圍之外的函數調用setTimeout()
來調用調用__doPostBack
的函數。 setTimeout()
將您帶出調用堆棧。
我的建議是將 javascript 和 Html 分開......而不是使用內聯調用,你可以試試這個方法
請注意,您必須加載 jquery 才能使其工作。
例如:
<script>
$(document).ready(function()
{
$(#Button1).click(function()
{
PostBack();
});
});
</script>
<input id="Button1" type="button" value="button" />
我有一個好消息,這個問題可能會在最新的 Firefox 和 jQuery 3.5.1 中得到解決。 我今天測試了報告的場景以及與“嚴格使用”規則相關的其他 __doPostBack 有問題的場景,所有這些場景似乎都沒有任何 JS 錯誤。
使用最新的 jQuery 3.5.1 和最新的 Firefox 84.0.2 是否仍然遇到此問題?
這是一個解決方法 -
將服務器端按鈕控制器添加到您的 aspx 頁面 -
<asp:Button id="btn" runat="server" onclick="btn_click_event" ClientIDMode="static"/>
在您的代碼隱藏頁面 (aspx.cs) 上定義將在回發后執行實際工作的事件方法。 現在隱藏這個按鈕控制器。
<asp:Button id="btn" runat="server" onclick="btn_click_event" ClientIDMode="static" style="display:none" />
不要使用Visible=false
因為它根本不會渲染按鈕。
現在將您的 javascript 函數更改為只調用click
`btn'
function sampleFunc()
{
$('#btn').click();
}
並在您的 HTML 輸入按鈕 onclick 方法中調用此函數 -
<input id="Button1" type="button" onclick="sampleFunc();" value="button" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.