Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   ВСТАВКА ВИДЕО с youtube (https://javascript.ru/forum/misc/24640-vstavka-video-s-youtube.html)

Livaanderiamarum 08.01.2012 19:08

ВСТАВКА ВИДЕО с youtube
 
Прога чтобы ссылки на ютьюб в видяшки превращать, принимает текст в котором ссылки на видяшки заменить, ширину и высоту добавляемых видях.

<html>
<script>
function youtube(text, width, height) {
	width = width || 420
	height = width || 315
	var reg = /(\s|^)(?:http:\/\/www\.|https:\/\/www\.|www\.)?youtube.com\/watch\?\S*v=(\S*?)(?:\s|&\S*|$)/g
	var youtube = '$1<object width="'
			+ width
			+ '" height="'
			+ height
			+ '"><param name="movie" value="http://www.youtube.com/v/$2?version=3&amp;hl=ru_RU"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/$2?version=3&amp;hl=ru_RU" type="application/x-shockwave-flash" width="'
			+ width
			+ '" height="'
			+ height
			+ '" allowscriptaccess="always" allowfullscreen="true"></embed></object>'
	return /* String */text.replace(reg, youtube)
}
</script>




<div id="text">Тут текст текст обычный невинный текст и тут ВНЕЗАПНО ссылка http://www.youtube.com/watch?v=RK6IibLVjI4&feature=related МУСКОТА!!11 и тут снова текст невинный текст</div>




<script>
//юзаем
var inner = document.getElementById('text').innerHTML
document.getElementById('text').innerHTML = youtube(inner , 130, 80) //парсим текст и засовываем обратно
</script>
</html>



вопрос, ЕСТЬ ЛИ ГОТОВЫЕ РЕШЕНИЯ)??? И знаете ли вы способы сделать это быстрее)?
И какой самый быстрый способ это сделать)? Напишите самую быструю функцию делающую это)

Saqsess 08.01.2012 20:22

Не проще ли API YouTube использовать?

Livaanderiamarum 08.01.2012 20:27

Цитата:

Сообщение от Saqsess (Сообщение 148941)
Не проще ли API YouTube использовать?

Отличная идея! Дайте мне API redtube и pornhubhd.com пожалуйста.

melky 09.01.2012 00:40

Цитата:

Сообщение от Livaanderiamarum (Сообщение 148927)
<html>
<script>
function youtube(text, width, height) {
	width = width || 420
	height = width || 315
	var reg = /(\s|^)(?:http:\/\/www\.|https:\/\/www\.|www\.)?youtube.com\/watch\?\S*v=(\S*?)(?:\s|&\S*|$)/g
*!*
	var youtube = '$1<object width="'
			+ width
			+ '" height="'
			+ height
			+ '"><param name="movie" value="http://www.youtube.com/v/$2?version=3&amp;hl=ru_RU"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/$2?version=3&amp;hl=ru_RU" type="application/x-shockwave-flash" width="'
			+ width
			+ '" height="'
			+ height
			+ '" allowscriptaccess="always" allowfullscreen="true"></embed></object>'
*/!*
	return /* String */text.replace(reg, youtube)
}
</script>




<div id="text">Тут текст текст обычный невинный текст и тут ВНЕЗАПНО ссылка http://www.youtube.com/watch?v=RK6IibLVjI4&feature=related МУСКОТА!!11 и тут снова текст невинный текст</div>




<script>
//юзаем
var inner = document.getElementById('text').innerHTML
document.getElementById('text').innerHTML = youtube(inner , 130, 80) //парсим текст и засовываем обратно
</script>
</html>

Array.join

Livaanderiamarum 09.01.2012 00:52

Цитата:

Сообщение от melky (Сообщение 148994)

Не понял при чем тут join, youtube это строка, в которую вставляются параметры высоты и ширины

melky 09.01.2012 09:56

следует понимать, то ри подобных операциях конкатенацию лучше заменять на join.

а во вторых у тебя рега каждый раз создаётся. её следует закешировать.

Saqsess 09.01.2012 10:45

Цитата:

Сообщение от Livaanderiamarum (Сообщение 148942)
Отличная идея! Дайте мне API redtube и pornhubhd.com пожалуйста.

Речь шла о youtube.
Например.

Livaanderiamarum 09.01.2012 15:02

Цитата:

Сообщение от melky (Сообщение 149049)
следует понимать, то ри подобных операциях конкатенацию лучше заменять на join.
а во вторых у тебя рега каждый раз создаётся. её следует закешировать.

спасибо) реал не знал про реги) и про джоин, а больше скольки коннактаций лучше так сливать?
п.с. покажи как бы слил ты? я не представляю себе код с join удобнее чем конактация.

melky 09.01.2012 15:43

да через запятую их перечислить в массиве, потом сразу join вызвать.

Livaanderiamarum 09.01.2012 15:44

Цитата:

Сообщение от melky (Сообщение 149118)
да через запятую их перечислить в массиве, потом сразу join вызвать.

Но у меня же высота и ширина вставляется. как джоин у знает какие стыки заполнять высотой а какие шириной?


Часовой пояс GMT +3, время: 11:02.