繁体   English   中英

IE9 Javascript 未定义变量

[英]IE9 Javascript Undefined Variables

我的代码中有以下内容,在 IE 7 和 8 中运行良好,但在 IE 9 中不再运行(当然,除非用户在兼容模式下运行......)

<asp:Label ID="invNumLink" runat="server" Font-Underline="true" ForeColor="Blue" Text='<%# Eval("Order_No") %>' createDate='<%# string.Format(Eval("create_date").ToString(),"MM/dd/yyyy") %>'
                                operatorNo='<%# Eval("operator_no") %>' orderNo='<%# Eval("Order_No") %>' loc='<%# Eval("Location") %>' table='<%# Eval("table_no") %>' recall='<%# Eval("recall_code") %>'
                                orderID='<%# Eval("ID") %>' acrID='<%# Eval("ACR_ID") %>'
                                onclick="goToDetail(this.orderNo,this.createDate, this.operatorNo, this.loc, this.table, this.recall, this.orderID, this.acrID);" style="cursor:pointer" ></asp:Label>

<script type="text/javascript">
    function goToDetail(orderNo, createDate, operatorNo, loc, table, recall, orderID, acrID) {
        var URL = 'OrderDetailView.aspx?orderNo=' + orderNo + '&' + 'createDate=' + createDate + '&' + 'operatorNo=' + operatorNo + '&' + 'loc=' + loc + '&' + 'table=' + 
                                        table + '&' + 'recall=' + recall + '&' + 'id=' + orderID + '&' + 'acrID=' + acrID;
        day = new Date();
        id = day.getTime();
        window.open(URL, id, 'toolbar=1,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=1100,height=700,left = 62,top = 15')
    }
</script>

在 IE9 中,发送到“goToDetail”function 的所有值都是未定义的。 有想法该怎么解决这个吗?

编辑

我通过从后面的代码中添加对 javascript 的调用解决了这个问题:

invNumLink.Attributes.Add("onclick", string.Format("goToDetail('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}'); return false;", item.GetDataKeyValue("Order_No").ToString(),
                string.Format(item.GetDataKeyValue("Create_Date").ToString(), "MM/dd/yyyy"),item.GetDataKeyValue("Operator_No").ToString(), item.GetDataKeyValue("Location").ToString(), 
                item.GetDataKeyValue("table_no").ToString(), item.GetDataKeyValue("recall_code").ToString(), item.GetDataKeyValue("ID").ToString(),item.GetDataKeyValue("ACR_ID").ToStrin

谢谢,

亚伦

您可以使用数据属性,其工作方式如下:

代替:

<span operatorNo="value">

你用

<span data-operatorNo="value">

并使用

this.getAttribute("data-operatorNo")

这在 IE6 中有效,并被记录为在 IE7+ 中有效。 HTML5 自定义数据属性是否在 IE 6 中“工作”?

我知道这很丑……但也许直接传递值可以解决你的问题。

<asp:Label ID="invNumLink" runat="server" Font-Underline="true" ForeColor="Blue" Text='<%# Eval("Order_No") %>' createDate='<%# string.Format(Eval("create_date").ToString(),"MM/dd/yyyy") %>'
                                operatorNo='<%# Eval("operator_no") %>' orderNo='<%# Eval("Order_No") %>' loc='<%# Eval("Location") %>' table='<%# Eval("table_no") %>' recall='<%# Eval("recall_code") %>'
                                orderID='<%# Eval("ID") %>' acrID='<%# Eval("ACR_ID") %>'
                                onclick="goToDetail('<%# Eval("Order_No") %>','<%# string.Format(Eval("create_date").ToString(),"MM/dd/yyyy") %>', '<%# Eval("operator_no") %>', '<%# Eval("Location") %>', '<%# Eval("table_no") %>','<%# Eval("recall_code") %>', '<%# Eval("ID") %>', '<%# Eval("ACR_ID") %>');" style="cursor:pointer" ></asp:Label>

对于 HTML 标签上的非标准属性,我相信您需要使用element.getAttribute("attName")来获取 HTML 中定义的非标准属性,而不是直接使用element.attName访问它们。 为了遵守标准,您还应该在自定义数据属性前面加上“data-”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM