Я создаю собственный WYSIWYG с нуля, используя JavaScript. Все это работает нормально (например, вставка картинок), но когда я нажимаю на кнопку «Отправить» и контент добавляется в мою базу данных, видео YouTube вставляется так:

<div><br></div><div><br><div><br></div></div>

Я создал файл JavaScript, который анализирует WYSIWYG:

function iImage(){
    var imgSrc = prompt('Enter image location', '');
    if (imgSrc != null){
        richTextField.document.execCommand('insertimage', false, imgSrc);
    }
}
function iVideo(){
    var urlPrompt = prompt("Enter Youtube Url:", "http://");
    var urlReplace = urlPrompt.replace("watch?v=", "embed/");
    var embed = '<iframe src="'+urlReplace+'" allowfullscreen="true" width="480" frameborder="0" height="390">';
    if($.browser.msie){
        richTextField.document.createRange().pasteHTML(embed);
    }else{
        richTextField.document.execCommand("Inserthtml", false, embed);
    }
}
function submit_form(){
    var theForm = document.getElementById("blogForm");
    theForm.elements["blogbody"].value = window.frames['richTextField'].document.body.innerHTML;
    theForm.submit();
}

Вы можете видеть, что моя функция iImage работает, но не моя iVideo.

Кто-нибудь может помочь?

Просто чтобы вы знали, что я отредактировал свой сценарий для этого ...

function iVideo(){
    var urlPrompt = prompt("Enter Youtube Url:", "http://");
    var urlReplace = urlPrompt.replace("http://www.youtube.com/watch?v=", "http://www.youtube.com/embed/");
    var embed = '<iframe src="'+urlReplace+'" allowfullscreen="true" width="480" frameborder="0" height="390"></iframe>';
    if($.browser.msie){
        richTextField.document.createRange().pasteHTML(embed);
    }else{
        richTextField.document.execCommand("Inserthtml", false, embed);
    }
}

Но до сих пор нет радости

0
Phillip Dews 26 Янв 2013 в 18:34

4 ответа

Лучший ответ

У меня есть его. Это код ниже

function iVideo(){
    var urlPrompt = prompt("Enter Youtube Url:", "http://");
    var urlReplace = urlPrompt.replace("watch?v=", "embed/");
    var embed = '<iframe title="YouTube video player" src="'+urlReplace+'" allowfullscreen="true" width="480" frameborder="0" height="390">';
    if(embed != null){
        richTextField.document.execCommand("Inserthtml", false, embed);`
    }
}

Это работает на моих сайтах прямо сейчас.

0
uri2x 19 Сен 2015 в 09:33

Конечный Причина, по которой вы не видите Youtube.com, заключается в том, что он будет добавлен вами при загрузке. В форме, в которой вы пишете контент, который вы намерены загрузить на свой сайт, вы должны нажать на ссылку «Добавить видео», которая переместится с первой строки кода, чтобы открыть окно с просьбой предоставить ссылку на видео на Youtube, которая выглядит как-то как http://youtube.com/theVideoLink. Ссылка, которую вы добавите, будет размещена там, где у вас есть src="'+urlReplace+'".

1
David Ugoagbara 3 Мар 2013 в 00:19

Можете ли вы сначала попробовать жестко закодированную / статическую версию, как показано ниже? - может быть только синтаксис или одна из ваших переменных не установлена.

<script type="text/javascript">
   function iVideo(){
      var youtubeiframe='<iframe type="text/html" width="640" height="385" src="http://www.youtube.com/embed/AsbagZvkrbo" frameborder="0"></iframe>';
      richTextField.document.execCommand ("insertHTML", false, youtubeiframe);
   }
</script>
0
Rob Sedgwick 26 Янв 2013 в 15:01

Ну, я новичок в javascript, но я нигде не вижу, чтобы он добавил youtube.com, все, что я вижу, это часы? V =. Как я уже сказал, мнение начинающих.

0
PaulBGD 26 Янв 2013 в 14:43