如何使用javascript(或jQuery)将youtube视频添加到iframe(基于Web的RTE)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用javascript(或jQuery)将youtube视频添加到iframe(基于Web的RTE)相关的知识,希望对你有一定的参考价值。
我想创建一个带有javascript(jQuery)和html的富文本编辑器,其工作方式类似于“Blogger”。
我希望编辑的用户能够添加格式化文本(粗体,不同大小的字体等),添加图像和从YouTube添加视频。我的搜索结果显示所有基于Web的RTE都使用“document.execCommand”。虽然我找到了前两个示例(格式化文本和图像),但我没有找到任何添加视频的示例。
我试图使用此代码(函数'test')但不起作用。单击按钮(视频)后,iframe(texteditor)为空。
<body onLoad="def()">
...
<input type="button" id="theVideo" value="video..." onClick="test()" />
...
</body>
<script type="text/javascript">
function def(){
var testframe = document.createElement("iframe");
testframe.name = testframe.id = "textEditor";
if (testframe.addEventListener){
testframe.addEventListener("load",function(e){this.contentWindow.document.designMode = "on";}, false);
} else if (testframe.attachEvent){
testframe.attachEvent("load", function(e){this.contentWindow.document.designMode = "on";});
}
document.body.appendChild(testframe);
textEditor.document.designMode="on";
textEditor.document.open();
html="<head><style type='text/css'>body{ font-family:arial; font-size:13px; }</style> </head>";
}
function test(){
sembed = "<div>";
sembed +="<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0'";
sembed +="data-thumbnail-src='http://3.gvt0.com/vi/JQu2OSyFZNM/0.jpg' height='266' width='320'>";
sembed +="<param name='movie' value='http://www.youtube.com/v/JQu2OSyFZNM&fs=1&source=uds' />";
sembed +="<embed width='320' height='266' src='http://www.youtube.com/v/JQu2OSyFZNM&fs=1&source=uds' type='application/x-shockwave-flash' >";
sembed +="</embed>";
sembed +="</object>";
sembed +="</div>";
textEditor.document.execCommand("Inserthtml", "", sembed);
}
</script>
有谁知道如何将视频添加到iframe?没有使用execCommand还有其他解决方案吗?
答案
此代码适用于Firefox,Chrome,IE。我还没有使用Opera和Safari测试过
<!DOCTYPE html>
<html>
<head>
<script>
function changeStyle(){
sembed = "<div>";
sembed +="<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0'";
sembed +="data-thumbnail-src='http://3.gvt0.com/vi/JQu2OSyFZNM/0.jpg' height='266' width='320'>";
sembed +="<param name='movie' value='http://www.youtube.com/v/JQu2OSyFZNM&fs=1&source=uds' />";
sembed +="<embed width='320' height='266' src='http://www.youtube.com/v/JQu2OSyFZNM&fs=1&source=uds' type='application/x-shockwave-flash' >";
sembed +="</embed>";
sembed +="</object>";
sembed +="</div>";
var x=document.getElementById("myframe");
var y=(x.contentWindow || x.contentDocument);
if (y.document) y=y.document;
y.open();
y.write(sembed);
y.close();
}
</script>
</head>
<body>
<iframe id="myframe" width=850 height=500>
<p>Your browser does not support iframes.</p>
</iframe><br /><br />
<input type="button" onclick="changeStyle()" value="Add Video.." />
</body>
</html>
以上是关于如何使用javascript(或jQuery)将youtube视频添加到iframe(基于Web的RTE)的主要内容,如果未能解决你的问题,请参考以下文章
当用户单击图像时,如何使用 JavaScript 或 jQuery 读取图像的像素?
如何使用 jquery/javascript 将文本插入 json [重复]
如何在没有 CSS 且仅使用 JavaScript 或 jQuery/jQueryMobile 的情况下更改设备方向?