1

我正在使用 JavaScript 从头开始​​创建自定义的所见即所得。所有这些都工作正常(比如插入图片),但是当我点击提交并将内容添加到我的数据库时,YouTube 视频会像这样插入:

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

我创建了一个所见即所得解析为的 JavaScript 文件:

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);
    }
}

但仍然没有喜悦

4

4 回答 4

1

我明白了。这是下面的代码

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);`
    }
}

它现在在我的网站上工作。

于 2013-02-25T19:36:56.467 回答
1

Ultimate 您看不到 Youtube.com 的原因是因为它会在您上传时添加。在您编写要上传到您网站的内容的表单中,您将单击添加视频链接,该链接将欺骗代码中的第一行以弹出一个窗口,要求您提交您的 Youtube 视频链接,看起来有些东西像http://youtube.com/theVideoLink。然后,您添加的链接将放置在您拥有src="'+urlReplace+'"的位置。

于 2013-03-03T00:19:48.427 回答
0

好吧,我是 javascript 的初学者,但我看不到任何地方将 youtube.com 添加到其中,我看到的只是手表?v=。正如我所说,初学者的意见。

于 2013-01-26T14:43:35.477 回答
0

您是否可以先尝试如下所示的硬编码/静态版本?- 可能只是语法或未设置的变量之一。

<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>
于 2013-01-26T15:01:06.587 回答