现在,该问题已解决:)感谢大家的帮助和关注!
我在“ oAutoCompleteTextBox.focus();”行上间歇性地在IE6中收到JS错误“对方法或属性的意外调用”。希望有人以前见过此问题,并且可以提供一些有关如何解决此问题的见解。以下是用法的上下文。
$(document).ready(function () {
...
oAutoCompleteTextBox = GetElement('<%=this.AutoCompleteTextBox.ClientID%>');
...
SetupDefaultValues();
}
function SetupDefaultValues() {
...
if(canFocus(oAutoCompleteTextBox)) {
oAutoCompleteTextBox.focus();
}
}
我在stackoverflow上发表的第一篇文章-是的!
最佳答案
好的,所以问题在于没有在updatepanel异步回发上触发jQuery $(document).ready()事件。解决方案是将ready()内的函数定义重构为显式函数定义(即函数pageReady(){...}),并将新的pageReady()事件处理程序添加到ASP.net Sys.WebForms.PageRequestManager endRequest事件,仅在异步回发时触发。
因此,代码现在看起来像这样:
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(pageReady);
$(document).ready(pageReady);
function pageReady() {
...
oAutoCompleteTextBox = GetElement('<%=this.AutoCompleteTextBox.ClientID%>');
...
SetupDefaultValues();
}
function SetupDefaultValues() {
...
if(canFocus(oAutoCompleteTextBox)) {
oAutoCompleteTextBox.focus();
}
}
感谢大家的帮助和关注-花了一段时间才弄清楚,我很高兴它解决了:)