我有一些 JS 代码,可以将 HTML 代码动态输出到数据表单元格,如下所示。
$('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 只是单击数据表单元格时调用的函数。这里的问题是 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>");
不调用函数,而是将 id 编码在 html 中可以解决问题。有谁知道如何使用函数调用方式解决这个问题吗?
最佳答案
我的同事找到了一个简单的解决方案,如下:
var id = "'"+orderId+"'"
showOrder(id) {
var Window = window.open( orderURL+"/order?orderId=" + id, '_blank');
}
似乎 orderId 将被视为 Long 并且 toString 在这种情况下不起作用。只有在使用之前将Long转换为String才能避免该问题。
关于javascript - js如何内联传递长参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47608256/