我有一些JS代码可以动态地将HTML代码输出到Datatable单元格。
$('td:eq(7)', nRow).html("<a onclick='showOrder("+orderId.toString()+");' style='cursor:hand;color:blue'>" +orderNo + "</a>");
function showOrder(id) {
var Window = window.open( orderURL+"/order?orderId=" + id, '_blank');
}
showOrder只是在单击Datatable单元格时调用的函数。这里的问题是orderId类似于6494933473411334145,它超出了JS long类型的范围。窗口showOrder实际打开是错误的ID,如6494933473411330000.我尝试了很多方法来解决问题,但唯一有效的方法如下:
$('td:eq(7)', nRow).html("<a href='"+orderURL+"/order/toTag?orderId=" + orderId +"' target='_blank' style='cursor:hand;color:blue'>" +orderNo + "</a>");
而不是调用函数,编码html里面的id可以解决问题。有谁知道如何使用函数调用方式解决这个问题?
答案 0 :(得分:0)
我的同事找到一个解决方案,如下:
var id = "'"+orderId+"'"
showOrder(id) {
var Window = window.open( orderURL+"/order?orderId=" + id, '_blank');
}
似乎orderId将被视为Long,而toString在这种情况下将不起作用。只有在使用之前将Long转换为String才能避免这个问题。