现在,该问题已解决:)感谢大家的帮助和关注!

我在“ 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();
    }
}


感谢大家的帮助和关注-花了一段时间才弄清楚,我很高兴它解决了:)

09-25 17:02