JavaScript
2198
Вклад в тег
www.youtube.com/get_video_info?video_id=XXXXXX
XXXXXX
подставьте хэш видео, который в ссылке на ролик, типа youtu.be/BWCiWZtrWXU
после слеша.url_encoded_fmt_stream_map
. Его значение опять надо распаковать как URL-параметры. И из результата вытащить параметр url
– это ссылка на единый скачивабельный видеофайл.function getUrlParams(search) {
let hashes = search.slice(search.indexOf('?') + 1).split('&')
let params = {}
hashes.map(hash => {
let [key, val] = hash.split('=')
params[key] = decodeURIComponent(val)
})
return params
}
var s = '------'; // здесь длиннющая строка из ответа /get_video_info
var a = getUrlParams(s);
var b = getUrlParams(a.url_encoded_fmt_stream_map);
console.log(b.url); // эту ссылку открываем в браузере - это скачиваемый видеофайл
k * векторИзТекущегоПоложения-в-Цель
:x = x + k * (xTarget - x);
y = y + k * (yTarget - y);
indexOf()
, который возвращает -1
если не найдено, или индекс от 0
и больше.-1
или иное значение. Можно просто сравнивать if (a.indexOf(b) > -1) { /* найдено! */ }
но иногда хочется короче.~
хорош тем, что выделяет -1
: только -1
с этим оператором даст 0
. Прочие числа дадут какое-то ненулевое значение.~(-1) === 0
0
и больше получилось тоже ненулевое число, и !!
даст true
-1
получится уникальный 0
, и !!0
вернёт false
var myEvent = new Event('teaTime');
Остается положить конверт на нужный столик: document.getElementById('stolik').dispatchEvent(myEvent);
var event = new CustomEvent('saySomething', { detail: "Hello there!" });
background-*
:background: #F90
полностью эквивалентен background-color: #F90
background: #F90 url(fon.jpg) repeat-x
равен background-color: #F90;
background-image: url(fon.jpg);
background-repeat: repeat-x;