Пожалуйста, проверье и помогите оптимизировать код
Здравствуйте.
В общем сделал вот такой вот код, который преобразовывает ссылку на видео youtube, vimeo и coub в плеер от этих видео хостингов (если последний можно так назвать). Сам я изучаю js всего 2 недели, поэтому не знаю методов исполнить ниже изложенное более качественнее. var $v1 = 'ССЫЛКА НА РОЛИК', $v2; // Для youtube if($v1.indexOf('youtube.com') + 1 || $v1.indexOf('youtu.be') + 1) { // Ищем и заменяем, чтобы проще обработать $v2 = $v1.replace('.com/embed/', '.com/watch?v='); $v1 = $v2.replace('.be/', '.com/watch?v='); //Отсеиваем ненужные части, чтобы получить чистый id $v2 = $v1.split(".com/watch?v=")[1]; $v1 = $v2.split("&index")[0]; $v2 = $v1.replace('&', '?'); //Получаем чистый id, вставляем его непосредственно в плеер document.write('<iframe width="685" height="386" src="https://www.youtube.com/embed/' + $v2 + '" frameborder="0" allowfullscreen></iframe>'); } // Для Coub else if ($v1.indexOf('http://coub.com/') + 1) { // Производим замену $v2 = $v1.replace('/view/', '/embed/'); // Вставляем id в плеер document.write('<iframe src="' + $v2 + '?muted=false&autostart=false&originalSize=false&hideTopBar=false&noSiteButtons=false&startWithHD=false" allowfullscreen="true" frameborder="0" width="685" height="386"></iframe>'); } // Для vimeo else if ($v1.indexOf('vimeo.com') + 1) { // Производим замену $v2 = $v1.replace('vimeo.com/', 'player.vimeo.com/video/'); // Вставляем id в плеер document.write('<iframe src="' + $v2 +'" width="685" height="386" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>'); } //В случае, если не удалось обработать else {document.write('<div style="color:red">Ошибка: не могу воспроизвести.</div>');} Как вы видите, используется всего 2 переменной. В основном скрипт ищет и заменяет, отсеивает ненужные символы, и получает чистый id который встраивает в плеер. Для youtube было сделано столько действий, чтобы скрипт поддерживал абсолютно все типы ссылок на видео: с таймкодом, из плейлиста и т.д. Сам код с работой справляется. Сделайте замечания, укажите мне на мои ошибки. Подскажите, как сделать то же, только качественнее. |
Адам,
Пара рекомендаций 1. В подобных случаях удобнее использовать не if else, а switch case http://javascript.ru/Switch 2. Если у вас на странице есть еще что-то кроме iframe, то не стоит использовать document.write. https://learn.javascript.ru/document...агрузки Нужно пользоваться https://learn.javascript.ru/modifying-document |
Спасибо большое.
|
Часовой пояс GMT +3, время: 17:20. |