Как передать длинный параметр в строке?

1

У меня есть 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. Окно showOrder, действительно открытое, имеет неправильный идентификатор, например 6494933473411330000. Я пробовал много способов решить проблему, но единственный способ работы - это следующее:

$('td:eq(7)', nRow).html("<a href='"+orderURL+"/order/toTag?orderId=" + orderId +"' target='_blank' style='cursor:hand;color:blue'>" +orderNo + "</a>");

Вместо вызова функции, кодирование id внутри html может решить проблему. Кто-нибудь знает, как решить эту проблему, используя способ вызова функции?

Теги:

1 ответ

0

Мой коллега находит решение просто следующим образом:

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

Кажется, orderId будет обрабатываться как Long, а toString в этом случае работать не будет. Только путем преобразования Long в String перед его использованием можно избежать проблемы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню