Я меняю текущий путь пользователя через функцию:
function setSomeValue(someValues) {
var query = '';
for (var i = 0; i < someValues.length; i++) {
query += someValues[i] + ',';
}
if ('URLSearchParams' in window) {
var searchParams = new URLSearchParams(window.location.search);
searchParams.set("paramName", query);
var newRelativePathQuery = window.location.pathname + '?' + searchParams.toString();
history.pushState(null, '', newRelativePathQuery);
}
}
Как вы можете видеть, я добавляю новые слова пользователя и хочу, чтобы новое местоположение было таким:
www.site.com?paramName=value1,value2,
Но браузер конвертирует мои запятые в %2C
поэтому я получаю следующее:
www.site.com?paramName=value1%2Cvalue2%2C
Что нужно сделать, чтобы сделать проталкивающую запятую для URL возможной?
(скопируйте и вставьте несколько комментариев)
Это может быть связано с URLSearchParams
и его реализацией метода toString
но мы не знаем, потому что вы не показали нам, что это на самом деле. Если это не преднамеренно кодирует запятую, и браузер просто делает это автоматически - тогда вы мало что можете сделать по этому поводу.
Если newRelativePathQuery
содержит кодированные версии, возможно, они могут быть заменены на обычные запятые. Но если history.pushState
делает это, то "другие способы" для создания самого URL-адреса вам не помогут.
Поскольку вывод отладки показал, что newRelativePathQuery
содержит уже закодированные запятые, вы можете попытаться заменить их на запятые и посмотреть, будет ли это "выживать" в то время.