aspx页面中的JavaScript在IE8中工作,但在IE9&以上

时间:2017-10-03 14:15:20

标签: javascript asp.net

我们使用aspx页面中的JavaScript来动态更改文本框的大小。它在文档模式下工作:IE中为8,但在9及以上版本中不起作用。也无法在Chrome中使用。

<script type="text/javascript">                     
    var objTextBox_<%= this.txtTextArea.ClientID %> = new ObjTextBox('<%= this.txtTextArea.ClientID %>',0,'<%= this.lblMaxLength.Text %>','<%= this.btnExpand.ClientID %>','<%= this.btnShrink.ClientID %>','<%= this.lblCurrentLength.ClientID %>');            

    function resizeTextBox_<%= this.txtTextArea.ClientID %>()
    {
        if (GetCookie('<%= this.txtTextArea.ClientID %>'))
        {
            expandTextBox_OnClientClick(objTextBox_<%= this.txtTextArea.ClientID %>);
        }   

        var textBox = document.getElementById('<%= this.txtTextArea.ClientID %>');
        if ((true == textBox.disabled) && (textBox.clientHeight < textBox.scrollHeight))
        {
            textBox.style.height = textBox.scrollHeight;
        }
    }
    window.addEventListener("onload", resizeTextBox_<%= this.txtTextArea.ClientID %>); 

</script>

1 个答案:

答案 0 :(得分:1)

它似乎很奇怪,它在IE8中工作而不是更高,因为.addEventListener()在IE8中不支持,但是在更高的版本中。

但是你传递"onload"而不是"load"作为第一个参数,这是不正确的,所以我认为在工作中有一个polyfill接受&#34; on&#34; IE8的前缀(或省略时添加),并且不会为IE9及以上版本删除它。

简而言之,将"onload"更改为"load"