Замените постбэк javascript ожидаемым URL в javascript - PullRequest
1 голос
/ 10 февраля 2012

Я пытаюсь заменить следующее:

javascript:__doPostBack('ctl33$ShowLists','DoList|2711|311')

на

main.aspx?action=listshow&id=2711&row=311#auto

Могут измениться только цифры 2711 и 311, и поэтому я хочу их сохранить.Я попробовал это:

var oldHref = "javascript:__doPostBack('ctl33$ShowLists','DoList|2711|311')";
var newHref = oldHref.replace(/javascript:__doPostBack\('ctl33\$ShowLists','DoList|(\d+)|(\d+)'\)/, "main.aspx?action=listshow&id=$1&row=$2#auto");

Я уже сделал несколько регулярных выражений, но само собой разумеется, что они не покрывали мою проблему, я забыл что-то избежать?

Ответы [ 2 ]

2 голосов
/ 10 февраля 2012

Труба, | (RegExp "ИЛИ") также должна быть экранирована.

var newHref = oldHref.replace(/javascript:__doPostBack\('ctl33\$ShowLists','DoList\|(\d+)\|(\d+)'\)/, "main.aspx?action=listshow&id=$1&row=$2#auto");

PS.Вместо использования .replace вы также можете просто сопоставить соответствующие части данной строки и объединить ее:

var oldHref = "javascript:__doPostBack('ctl33$ShowLists','DoList|2711|311')";
var matches = /(\d+)\|(\d+)/.exec(oldHref);
var newHref = "main.aspx?action=listshow&id=" + matches[1] + "&row="  + matches[2] + "#auto";
1 голос
/ 10 февраля 2012

ASP.NET формы сервера используют метод POST по умолчанию.Для использования метода GET необходимо использовать элемент управления LinkButton или реализовать обработчик события OnClientClick и изменить свойство document.location.href.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...