javascript - js如何内联传递长参数?

标签 javascript

我有一些 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/

相关文章:

javascript - 在 UIWebView 中滚动网页

javascript - 数组中的唯一值

javascript - 使用 Jasmine 模拟多个方法调用

javascript - 单击复选框按钮时如何制作单选按钮?

javascript - 如何在 jquery 中附加到 html 之前编译字符串(包含 Angular 目录)?

javascript - 如何在javascript字符串之间附加一些东西?

javascript - 断言所有复选框都被选中

javascript - 对象参数的默认值

javascript - 将 URL 复制到剪贴板并显示和隐藏消息

javascript - 显示模式弹出基础 : Prevent close on popup