js如何传递长参数内联?

时间:2017-12-02 13:11:32

标签: javascript

我有一些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可以解决问题。有谁知道如何使用函数调用方式解决这个问题?

1 个答案:

答案 0 :(得分:0)

我的同事找到一个解决方案,如下:

var id  = "'"+orderId+"'"
showOrder(id) {
  var Window = window.open( orderURL+"/order?orderId=" + id, '_blank');
}

似乎orderId将被视为Long,而toString在这种情况下将不起作用。只有在使用之前将Long转换为String才能避免这个问题。

相关问题