我的代码中有以下内容,它在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”函数的所有值都是未定义的。关于如何解决这个问题的任何想法?
修改
我通过从后面的代码中添加对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
谢谢,
亚伦
答案 0 :(得分:3)
您可以使用数据属性,其工作方式如下:
而不是:
<span operatorNo="value">
您使用
<span data-operatorNo="value">
并使用
访问它this.getAttribute("data-operatorNo")
这适用于IE6,并记录为在IE7 +中工作。 Do HTML5 custom data attributes “work” in IE 6?
答案 1 :(得分:1)
我知道这是UGLY ......但是直接传递值可能会解决您的问题。
<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>
答案 2 :(得分:1)
对于HTML标记上的非标准属性,我认为您需要使用element.getAttribute("attName")
来获取HTML中定义的非标准属性,而不是使用element.attName
直接访问它们。为了保持标准,您还应该使用“data - ”为自定义数据属性添加前缀。