Javascript-форум (https://javascript.ru/forum/)
-   Firefox/Mozilla (https://javascript.ru/forum/css-html-firefox-mizilla/)
-   -   Помощь новичку с простеньким greasemonkey скриптом (https://javascript.ru/forum/css-html-firefox-mizilla/65280-pomoshh-novichku-s-prostenkim-greasemonkey-skriptom.html)

bombino1 18.01.2017 19:53

спасибо, все заработалo, setinterval 30ms помог!

bombino1 19.12.2018 17:53

помогите понять в чем ошибка dataset:
имеем код страницы:
<input id="vc-api-params" type="hidden"
 data-host-name="Nic"
 data-host-id="13402"
 data-host-ws="cdnnc://c-t6-bintu-stream-eu~nanocosmos~de/atrans.fly2"


пытаюсь присвоить своим переменным данные из этого куска:
var interval = setInterval( function(){
  if('vc-api-params' in unsafeWindow){
    clearInterval(interval);
    
    let hostNickName=vc-api-params.dataset.hostName;
    let hostid=vc-api-params.dataset.hostId;
    let ws=vc-api-params.dataset.hostWs;
   
    window.location.replace(`http:/mysite.com/Player.swf?hid=${hostid}&h=${hostNickName}&ws=${ws}`)
  }
}, 20);



и ничего не происходит, подозреваю что дефис имени vc-api-params ему не нравится, но смена на vcApiParams также не помогла. Ошибка точно в строках let, ибо если задать переменным численное значение вручную - всё выполняется.

еще надо оставить от ссылки cdnnc://c-t6-bintu-stream-eu~nanocosmos~de/atrans.fly2 лишь концовку - fly2 (вместо 2 может быть любое двухзначное число), надо в переменную ws добавить regex (\w+)$ но не получается
Спасибо!

рони 19.12.2018 18:48

bombino1,
let hostNickName = unsafeWindow['vc-api-params'].dataset.hostName;

bombino1 19.12.2018 19:02

огромное спасибо, фунциклирует! плюсик улетел

bombino1 19.12.2018 20:17

дано: нужно вырезать из ссылки cdnnc://c-t6-bintu-stream-eu~nanocosmos~de/atrans.fly20 последнюю часть - fly20

делаю:
let ws1='cdnnc://c-t6-bintu-stream-eu~nanocosmos~de/atrans.fly20';
let reg=/(\..+)/;
let ws=ws1.search(reg);
alert(ws);


в результате ws имеет значение 50 вместо fly20, хотя выражение проходит проверку на https://regex101.com/

рони 19.12.2018 20:28

Цитата:

Сообщение от bombino1
нужно вырезать

где код?

bombino1 19.12.2018 20:43

немного не понял вопроса, но добавил строку с alert

рони 19.12.2018 20:45

bombino1,
где код вырезания?

рони 19.12.2018 20:56

bombino1,
<script>
let ws1='cdnnc://c-t6-bintu-stream-eu~nanocosmos~de/atrans.fly20';
let reg=/(\w+)$/;
let ws=ws1.search(reg);
let t = ws1.slice(0, ws);//первый вариант обрезки
let s = ws1.replace(reg, '');// второй
document.write(t + '<br>' + s)
  </script>

bombino1 19.12.2018 21:15

спасибо, только надо инвертировать обрезку, т.е. оставить только конец, fly с цифрами, все что после точки :) Тут уже попытаюсь сам.
UPD: придумалось такое: let t = ws1.slice(ws, );
не знаю корректно ли, но работает.


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