2011-02-06 5 views
0

У меня есть поле textarea, где пользователи могут ввести код встраивания youtube, а затем отправить i, захватить val текстового поля и добавить его в тело. Я хочу добавить? Id = 123 в конец src в коде для встраивания, прежде чем добавить его в тело. Самый простой способ сделать это. Добавленное значение должно быть IFrame код с модифицированным ЦСИJQuery Изменение attr val перед добавлением

Код для вставки выглядит как

<iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/aemXgP-2xyg" frameborder="0" allowfullscreen></iframe> 

Обновлено КОДЕКСА

   var value = $('textarea').val(); 
       var wmode = '?id=123'; 
       var value1 = $(value).attr("src", $(value).attr("src") + wmode);     
       var code = $('<div class="abs embed" id="embedId">' + value1 + '<span class="move"></span></div>');     
       $(code).appendTo(... 

ответ

1
var iframe = $($("textarea").val()); 
iframe.attr("src", function(i,v) { return v + '?id=123'; }).appendTo("body"); 

(обновленный с раствором Šime Vidas')

изменить: если у вас есть firebug, на этой странице вы можете скопировать/вставить код iframe в текстовое поле и запустить этот код в консоли:

var lol = $("textarea").val() 
var iframe = $(lol); 
var test = iframe.attr("src", function(i,v) { return v + '?id=123'; }) 
test.appendTo("body"); 

И видео youtube должно быть вставлено в конце страницы.

редактировать 2: Для того, чтобы делать то, что вы хотите в вашем обновлении, попробуйте следующее:

var value = $('textarea').val(), 
wmode = '?wmode=transparent', 
value1 = $(value).attr("src", $(value).attr("src") + wmode), 
span = $('<span class="move"></span>'), 
div = $('<div class="abs embed" id="embedId"></div>'); 
div.append(value1).append(span).appendTo("body"); 
+0

Я хочу, чтобы добавить весь код Iframe включая модифицированный атрибут Src а не только src. – Hussein

+1

@alex Весь iframe будет добавлен к BODY. Использование 'attr()' просто изменяет атрибут src –

+0

Все методы jQuery являются целыми, поэтому iframe.attr (blablabla) .appendTo() добавит iframe. – Robin

2
var code = $("#TEXTAREA").val(); 
var appCode = $(code); 
appCode.attr("src", appCode.attr("src") + "?id=123").appendTo($("#parentDiv")); 
+0

Лучше: 'appCode.attr ('src', function (i, v) {return v + '? Id = 123';})' –

0

Все размещенные решения хороши и работать, но я предпочел бы просто вырезать СРК, если она существует а затем посмотрите, действительно ли это действительный источник видео. Если вы разрешите им вводить html, вы рискуете!

Посмотрите, Facebook вы можете ввести ссылку, и он узнает, что это такое, и это намного приятнее для пользователя, если он может просто передать ссылку на youtube, а не искать весь код для встраивания! Безопасность прежде всего!

0
$(ta.value).attr('src', function(i,v) { return v + s; }).appendTo('body'); 

... где s является строка, которую вы хотите добавить в атрибут Src
... и ts TEXTAREA элемент

Смежные вопросы