спасибо, все заработалo, setinterval 30ms помог!
|
помогите понять в чем ошибка 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+)$ но не получается Спасибо! |
bombino1,
let hostNickName = unsafeWindow['vc-api-params'].dataset.hostName; |
огромное спасибо, фунциклирует! плюсик улетел
|
дано: нужно вырезать из ссылки 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/ |
Цитата:
|
немного не понял вопроса, но добавил строку с alert
|
bombino1,
где код вырезания? |
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> |
спасибо, только надо инвертировать обрезку, т.е. оставить только конец, fly с цифрами, все что после точки :) Тут уже попытаюсь сам.
UPD: придумалось такое: let t = ws1.slice(ws, ); не знаю корректно ли, но работает. |
Часовой пояс GMT +3, время: 01:01. |