Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Скрипт на изменения значения и переход по ссылкам (https://javascript.ru/forum/css-html/73257-skript-na-izmeneniya-znacheniya-i-perekhod-po-ssylkam.html)

leon_v 02.04.2018 10:39

Скрипт на изменения значения и переход по ссылкам
 
Хай народ! Нужна помощь такого рода. Цель - написание скрипта изменяющего параметры цифр в ссылке на число большее текущего на 1 и в другой части ссылки на 400. Например, вот есть часть ссылки: "id_unit=15393004&action_id=1&id_loc_to=39009"
начальное значения id_unit должно вводиться пользователем и изменять на 1 в большую сторону, значение d_loc_to также изначально вводиться пользователем, а потом изменяется на + 400 (или -400). На чем писать скрипт? Яваскрипт? Селеним пойдет втулить?
Мне предоложили такой скрипт:
var link = "id_unit=15393004&action_id=1&id_loc_to=39009" ;
var params = link.split("&");
var data = {};
for(var i = 0;i< params.length; i++){
var par = params[i].split("=");
data[par[0]] = par[1];
}
//data["id_unit"]; // = 15393004
//data["id_loc_to"]; // = 39009

var unitId = prompt("enter unit id: ");
unitId++; // +1
data["id_unit"] = unitId;
var locId = prompt("enter loc id: ");
locId = locId + 400; // +400
data["id_loc_to"] = locId ;

var queryArray = [];
var newQuery = "";
for (var key in data){
queryArray.push(key+"=" + data[key]);
}
query = queryArray.join("&");
console.log(query);


Но я так понял он не переходит по ссылкам.

Dilettante_Pro 02.04.2018 11:53

var params = { "id_unit": 0, "action_id":1,"id_loc_to":0};
params.id_unit = +prompt("enter unit id: ");
params.id_loc_to =  +prompt("enter loc id: ");
params.id_unit++;
params.id_loc_to += 400;
var queryArray = [];
for (var key in params){
    queryArray.push(key+"=" + params[key]);
}
var query = queryArray.join("&");
alert(query);


Или же вы не можете подставить полученное значение в ссылку?

Цитата:

Сообщение от leon_v
Но я так понял он не переходит по ссылкам.

Скрипт сам не делает переход. Он только формирует строку параметров

leon_v 02.04.2018 12:45

Блин, а можно, что бы по полной ссылке переходил? я там только часть ссылки указал, думал сам разберусь, но нет( вот ссылка - "http://nations-conflict.ru/conflict/game.php?q=control&id_unit=15393004&action_id=1&id _loc_to=39009&cnf=1"

leon_v 02.04.2018 12:58

а мне нужно что бы формировал новые ссылки и переходил. Полную ссылку скинул выше. А можно это в силениум запхнуть как-то?

Dilettante_Pro 02.04.2018 13:00

leon_v,
Вам нужен переход по нажатию на ссылку или непосредственно из скрипта?

leon_v 02.04.2018 13:01

Желательно встроить в силениум, там можно задержку выставить. А вообще из скрипта

j0hnik 02.04.2018 13:18

до бесконечности увеличивать?

j0hnik 02.04.2018 13:20

вообще что хотите этим добиться, можете ситуацию обрисовать вкратце?

Dilettante_Pro 02.04.2018 13:26

Насчет селениума не знаю - не пользовался.
А из скрипта (ссылку скрыл во избежание перехода)
<a href="http://nations-conflict.ru/conflict/game.php?q=control&id_unit=15393004&action_id=1&id _loc_to=39009&cnf=1" style="display:none"> Ссылка </a>
<script>
var link = document.querySelector('a');
var url = link.href.split('?')[0];
var params = {"q":"control", "id_unit": 0, "action_id":1,"id_loc_to":0,"cnf":1};
params.id_unit = +prompt("enter unit id: ");
params.id_loc_to =  +prompt("enter loc id: ");
params.id_unit++;
params.id_loc_to += 400;
var queryArray = [];
for (var key in params){
    queryArray.push(key+"=" + params[key]);
}
var query = url + '?' + queryArray.join("&");
// document.location.href = query; // переход закомментирован
alert(query);
</script>

leon_v 02.04.2018 13:27

Поясню:)
http://nations-conflict.ru/conflict/...action_id=1&id _loc_to=39009&cnf=1"- ссылка перехода отряда "id_unit=15393004" в локацию - "id _loc_to=39009"
Мне нужно что бы 100 отрядов с id_unit начиная с моего указанного перешли в локации id _loc_to начиная с моей указанной локации. Ид юнита увеличивается на 1. А локации на 400.
Вроде внятно написал:) Если есть возможность сделать задержку между переходом в 3-4 секунды или запилить это в силениум:)


Часовой пояс GMT +3, время: 19:46.