Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.01.2017, 19:20
Новичок на форуме
Отправить личное сообщение для Адам Посмотреть профиль Найти все сообщения от Адам
 
Регистрация: 05.01.2017
Сообщений: 5

Пожалуйста, проверье и помогите оптимизировать код
Здравствуйте.
В общем сделал вот такой вот код, который преобразовывает ссылку на видео 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&amp;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 было сделано столько действий, чтобы скрипт поддерживал абсолютно все типы ссылок на видео: с таймкодом, из плейлиста и т.д.

Сам код с работой справляется.

Сделайте замечания, укажите мне на мои ошибки.
Подскажите, как сделать то же, только качественнее.
Ответить с цитированием
  #2 (permalink)  
Старый 16.01.2017, 11:22
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Адам,
Пара рекомендаций
1. В подобных случаях удобнее использовать не if else, а switch case http://javascript.ru/Switch
2. Если у вас на странице есть еще что-то кроме iframe, то не стоит использовать document.write. https://learn.javascript.ru/document...агрузки
Нужно пользоваться https://learn.javascript.ru/modifying-document
Ответить с цитированием
  #3 (permalink)  
Старый 16.01.2017, 17:42
Новичок на форуме
Отправить личное сообщение для Адам Посмотреть профиль Найти все сообщения от Адам
 
Регистрация: 05.01.2017
Сообщений: 5

Спасибо большое.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста оптимизировать скрипт allanmiln Events/DOM/Window 15 10.02.2013 20:34
Помогите модифицировать код JS refer5 Общие вопросы Javascript 2 22.01.2013 21:42
Помогите пожалуйста разобраться со скриптом Shalty Opera, Safari и др. 1 21.01.2013 16:41
Помогите пожалуйста разобраться Kupu4 Ваши сайты и скрипты 0 21.01.2010 10:44
Помогите оптимизировать код. pizzZ jQuery 5 17.11.2009 23:52