Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 18.01.2017, 19:53
Интересующийся
Отправить личное сообщение для bombino1 Посмотреть профиль Найти все сообщения от bombino1
 
Регистрация: 03.04.2016
Сообщений: 27

спасибо, все заработалo, setinterval 30ms помог!
Ответить с цитированием
  #32 (permalink)  
Старый 19.12.2018, 17:53
Интересующийся
Отправить личное сообщение для bombino1 Посмотреть профиль Найти все сообщения от bombino1
 
Регистрация: 03.04.2016
Сообщений: 27

помогите понять в чем ошибка 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, 19.12.2018 в 18:48.
Ответить с цитированием
  #33 (permalink)  
Старый 19.12.2018, 18:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

bombino1,
let hostNickName = unsafeWindow['vc-api-params'].dataset.hostName;
Ответить с цитированием
  #34 (permalink)  
Старый 19.12.2018, 19:02
Интересующийся
Отправить личное сообщение для bombino1 Посмотреть профиль Найти все сообщения от bombino1
 
Регистрация: 03.04.2016
Сообщений: 27

огромное спасибо, фунциклирует! плюсик улетел
Ответить с цитированием
  #35 (permalink)  
Старый 19.12.2018, 20:17
Интересующийся
Отправить личное сообщение для bombino1 Посмотреть профиль Найти все сообщения от bombino1
 
Регистрация: 03.04.2016
Сообщений: 27

дано: нужно вырезать из ссылки 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/

Последний раз редактировалось bombino1, 19.12.2018 в 20:44.
Ответить с цитированием
  #36 (permalink)  
Старый 19.12.2018, 20:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Сообщение от bombino1
нужно вырезать
где код?
Ответить с цитированием
  #37 (permalink)  
Старый 19.12.2018, 20:43
Интересующийся
Отправить личное сообщение для bombino1 Посмотреть профиль Найти все сообщения от bombino1
 
Регистрация: 03.04.2016
Сообщений: 27

немного не понял вопроса, но добавил строку с alert
Ответить с цитированием
  #38 (permalink)  
Старый 19.12.2018, 20:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

bombino1,
где код вырезания?
Ответить с цитированием
  #39 (permalink)  
Старый 19.12.2018, 20:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

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>
Ответить с цитированием
  #40 (permalink)  
Старый 19.12.2018, 21:15
Интересующийся
Отправить личное сообщение для bombino1 Посмотреть профиль Найти все сообщения от bombino1
 
Регистрация: 03.04.2016
Сообщений: 27

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

Последний раз редактировалось bombino1, 19.12.2018 в 21:24.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите со скриптом greasemonkey AlliancePG Javascript под браузер 0 19.03.2016 17:29
Как определить, имеет ли на данный момент вкладка со скриптом фокус (Greasemonkey) sudomac Events/DOM/Window 2 07.08.2014 09:09
Помощь со скриптом JsScroller_slider! kurt2133 Ваши сайты и скрипты 3 05.08.2014 12:47
Помогите со скриптом новичку mjav4ik jQuery 4 15.03.2013 17:28
Помогите новичку со скриптом yujin11 jQuery 0 31.07.2011 15:43