Online video hd

Free video online

Официальный сайт sosamba138 24/7/365

Смотреть видео бесплатно

29.07.10 22:51

mhspaceВстраиваемое видео Youtube в HTML5 на любом сайте (userscript)

Несколько дней назад на хабре мелькнула новость о новом способе встраивания youtube-видео в сторонние сайты. Но пока большинство сайтов\блогов не поддерживают его. Это, конечно, дело времени, но есть и другая проблема: даже после того, как администрация какого-либо сайта сделает поддержку у себя такого видео, вряд ли она изменит способ встраивания уже вставленного видео.
Поэтому, чтобы решить эти проблемы, я написал userscript, который на каждой только что загруженной странице ищет youtube-видео, встроенное старым способом, и меняет его на новый. Под катом описание некоторых особенностей и сам скрипт.

В старом встраиваемом плеере была такая особенность: при первом клике по нему начиналось воспроизведение видео, при втором в новой вкладке открывалась страница этого видео на youtube. В новой такого нет, поэтому скрипт добавляет ссылку на страницу youtube под видео. Если вам это не нужно, в начале скрипта замените строку «var insertLink = 1;» на «var insertLink = 0;».

В Опере в iframe появляется скроллбар. Я хотел убрать его, добавив scrolling=«no», но это привело к тому, что iframe вообще разползался на несколько страниц по вертикали, поэтому скроллбар будет, пока его не уберёт сам google.

Скрипт можно скачать здесь, а так же на userscripts.org.
Работает в Google Chrome, Mozilla Firefox, Opera.



digiwhite 29.07.10 23:34 # +0
Что-то я не совсем понял, что оно делает. Скрипт на лету что-то подменяет?
kstep 29.07.10 23:59 # +1
Да, ищет на страницы все < object >ы от ютуба и переколбашивает их в < iframe >ы.
konkere 30.07.10 01:34 # +0
А у меня все ифреймы переколбашены по-дефолту и сидят в резервации.
Там других вариантов нету?
mhspace 30.07.10 01:39 # +-1
Не понял
kstep 30.07.10 00:02 # +2
Можно я покритикую код?

Юзайте var почаще. Кроме того не совсем понятно, зачем там while():

1
2
3
4
5
6
7

var allElements = document.getElementsByTagName('object');
for (var n = 0; n < allElements.length; n++)
{
    var currentElement = document.getElementsByTagName("object")[n];
// ...
 
mhspace 30.07.10 00:34 # +1
Можно я покритикую код?

Конечно, критика приветствуется.
Насчёт var учту, скрипт поправил.

Насчёт примера: на каждом обороте цикла for если object действительно был youtube видео, то он удаляется, и allElements.length уменьшается на 1. И следующий обьект, который нужно исследовать будет с таким же индексом, как и только что удалённый. Впринципе, это возможно можно было бы исправить, добавив "n--" в конец цикла, но, по-моему, с while скрипт более предсказуем.
mhspace 30.07.10 00:42 # +1
Перечитал свой комментарий к примеру - сам нихрена не понял, что хотел сказать :). Ща попробую обьяснить попонятнее
mhspace 30.07.10 00:51 # +0
Обьясню на примере: допустим, на странице 4 а, из них 1-й, 2-й и 4-й youtube-видео.
Вращается цикл первый раз (n == 0): 1-й обьект найден (индекс 0), замёнён, удалён.
Вращается цикл второй раз (n == 1): Так как 1-й обьект обьёкт удалён, то 2-й будет иметь индекс 0, обработчик будет искать с индексом 1, наткнётся на 3-й обьёкт, который вообще не видео -> шаг пропущен
Вращается цикл третий раз (n == 2): 4-й обьект найден (индекс 2), замёнён, удалён.
В итоге одно видео пропущено.
mhspace 30.07.10 00:53 # +0
Парсер лох. В первом предложении должно было быть:
"Обьясню на примере: допустим, на странице 4 <object>а"
kstep 30.07.10 02:21 # +1
Каюсь, тут ты прав. Мне почему-то казалось, что если взять результат getElementsByTagName() и присвоить его переменной, то сделается снепшот найденных элементов в виде статичного списка. Проверил простым скриптом:

1
2
3

var x = document.getElementsByTagName("a"); for (var i=0;i<x.length;i++) { x[i].parentNode.removeChild(x[i]); console.log(x.length); }
 


и всё стало ясно =)
digiwhite 30.07.10 06:37 # +1
Все предельно ясно :)
imn 30.07.10 13:56 # +0
Здорово бы было видеть эту идею в виде плагинов для Хрома/Фокса и тд. или может кто знает об уже имеющихся? Про обезьяну знаю, но для нее есть готовое? Да я сегодня ленив
K-9 30.07.10 13:59 # +1
Для хрома просто щелкните по ссылке и установите как расширение, для FireFox нужен Greasemonkey
K-9 30.07.10 13:59 # +0
exelens, поправь ссылку плз =)
imn 30.07.10 15:52 # +0
Блин... не вчитался в статью, я подумал что это скрип для встаивания непосредственно в страницу )
mhspace 30.07.10 21:14 # +0
Оно и есть для обезьяны, про хром K-9 всё сказал
antigluk 31.07.10 13:12 # +0
Попробовал, работает. Но пока не понимаю зачем.. и так и так получается флеш-видео, только разными способами вставленное.
mhspace 31.07.10 23:12 # +0
В Firefox пока использовать особо смысла нет, тк стабильная версия не поддерживает WebM, а в нестабильной не пашет Greasemonkey, но вот в хроме и опере...

Посты Комментарии
Последние посты
    Посты Комментарии
    Последние комментарии
      Посты Комментарии
      Изменения
        Посты Комментарии Изменения Черновики Избранное
        Черновики (все)
          Посты Комментарии Изменения Черновики Избранное
          Избранное (всё)
            Посты Комментарии Изменения Черновики Избранное
            Лучшие блоги (все 133)
            Топ пользователей Топ блогов
            Топ пользователей Топ блогов
            Элита (все 2589 из 203 городов)
            Топ пользователей Топ блогов
            welinux.ru

            В хорошем качестве hd видео

            Онлайн видео бесплатно


            Смотреть русское с разговорами видео

            Online video HD

            Видео скачать на телефон

            Русские фильмы бесплатно

            Full HD video online

            Смотреть видео онлайн

            Смотреть HD видео бесплатно

            School смотреть онлайн