【问题标题】:ComboBox throws an error:Unable to get property 'createRange' of undefined or null referenceComboBox 抛出错误:Unable to get property 'createRange' of undefined or null reference
【发布时间】:2014-08-19 16:08:08
【问题描述】:

我正在使用 Ajax Control Toolkit 中的 ComboBox。以下所有代码均由 VisualStudio 2013 生成(使用 asp.net 4.5)。我只选择了数据连接。为什么我会收到此 JavaScript 错误:“无法获取未定义或空引用的属性 'createRange'”以及如何解决此问题?谢谢。

 <asp:ComboBox ID="ComboBox1" runat="server" AutoCompleteMode="Append" 
     DataSourceID="SqlDataSource_countries" DataTextField="country" 
     DataValueField="ID_country" DropDownStyle="DropDownList" MaxLength="0" 
      style="display: inline;">
 </asp:ComboBox>

 <asp:SqlDataSource ID="SqlDataSource_countries" runat="server"
    ConnectionString="<%$ ConnectionStrings:DefaultConnection %>" 
    SelectCommand="SELECT [ID_country], [country] FROM [countries] 
    ORDER BY [country]"></asp:SqlDataSource>

【问题讨论】:

  • 请分享 JavaScript 代码。你在哪里调用它。
  • Javascript 由 ASP.NET AJAX 控件工具包附带的 ASP.NET ComboBox 控件提供。 asp:ScriptManager 调用的是 JavaScript 代码所以基本上我只提供数据库连接......
  • 这是错误的来源:var userRange = document.selection.createRange()。只有 Explorer 11 在执行代码时会引发错误。 Safari 没有错误。有谁知道如何解决这个问题?

标签: javascript asp.net visual-studio-2013 ajaxcontroltoolkit


【解决方案1】:

我遇到了同样的问题,通过设置以下元密钥解决了:

&lt;meta http-equiv="X-UA-Compatible" content="IE=10,chrome=1" /&gt;

【讨论】:

    【解决方案2】:

    asp:ComboBox 调用以下 javascript 行:

    document.selection.createRange();
    

    正如您在this answer 中看到的那样,IE11 根本不支持document.selection

    很遗憾,您不能将 ComboBox 更改为使用 document.getSelection() 而不是 document.selection.createRange()

    说了这么多,有什么办法呢?

    ☞似乎唯一的选择是将asp:ComboBox替换为常规下拉菜单。 (或者,如果您需要允许用户键入的输入,请查找/实现类似的内容。)

    【讨论】:

    • 有新版本的 ACT 可以解决这个问题吗?
    • @PTansey 我不知道。
    • 你说得对,耶胡达。这完全是一个 IE11 问题。
    猜你喜欢
    • 1970-01-01
    • 2020-11-07
    • 1970-01-01
    • 1970-01-01
    • 2020-08-12
    • 2016-12-19
    • 2017-12-29
    • 1970-01-01
    • 2013-04-22
    相关资源
    最近更新 更多