回发不用于Firefox for asp.net(C#)页面
我有一个mozilla firefox的问题。
我正在使用asp.net语言开发一个网站,我在表单中有一个按钮。 当我点击onclick属性按钮时,我正在调用一个函数和这个function做回发。
这个场景是工作铬和互联网探索者。 但它不适用于mozilla firefox。 我在控制台中收到此错误:TypeError:访问严格模式调用函数被审查..
我的示例按钮是:
我的示例函数是:
function sampleFunc(reqMessage) { __doPostBack('', reqMessage); }
我在互联网上搜索 很多人都有这个问题,但没有任何解决方案。
你有关于这个bug的任何解决方案(!)
编辑1:我在jquery网站上找到了一张票 。 根据勾选,thay修复了那个bug。 但我应用了相同的解决方案,但我的错误仍在继续。 🙁
最后我找到了答案。
我正在使用alertfy javascript库来弹出消息。 此库正在使用“使用严格”表达式。
我从这个库中删除了这个表达式,现在没有问题。 我的代码适用于所有浏览器。
ASP.Net ScriptManager代码在__doPostBack中使用“caller.callee”调用调用堆栈以检测无限递归。 如果调用堆栈中的任何函数使用“use script”进行解析,那么在FireFox上将失败。 解决方法是使用“use script”范围之外的函数调用setTimeout()来调用调用__doPostBack的函数。 setTimeout让你退出调用堆栈。
我的建议是保持javascript和Html分开..而不是使用内联调用你可以尝试这种方法
请注意,您必须加载jquery才能使其正常工作。
例如:
这是一个解决方法 –
将服务器端按钮控制器添加到您的aspx页面 –
在您的代码隐藏页面(aspx.cs)上定义将在回发后执行实际工作的事件方法。 现在隐藏这个按钮控制器。
不要使用Visible=false
因为它根本不会渲染按钮。
现在更改你的javascript函数,只需调用click
`btn’
function sampleFunc() { $('#btn').click(); }
并在您的HTML输入按钮onclick方法中调用此函数 –