我正在使用DNN并尝试从外部网站嵌入视频。我之前有一个工作代码,但没有保存,因为它是1行,并认为它基本上足以让我记住。供应商给了我们这段代码:
<a href="#" onclick="return(false);"
rel="videoGUID=13cd1ac61aba5s4e92SbecaR0a18bbe36111&"
style="display:block;width:1280px;height:740px"
id="13cd1ac61aba5s4e92SbecaR0a18bbe36111" width="1280"
height="740">Foundation Birthday Updated
</a>
<script type="text/javascript" src="http://360.sorensonmedia.com/13cd1ac61aba5s4e92SbecaR0a18bbe36111/embedv2.js"></script>
我试图将其嵌入HTML模块中。再次,这在以前工作。 <script>
标记在HTML模块中被删除。我相信我只是使用.js链接并将其放在一个对象或iframe标记中以使其嵌入。有任何想法吗?
Quicktime或安装其他视频插件不是一个选项。
答案 0 :(得分:0)
如果您只是访问Chrome中的网址http://360.sorensonmedia.com/13cd1ac61aba5s4e92SbecaR0a18bbe36111/embedv2.js,您会看到以下页面(当然,启用Flash后,该小程序将会播放。
这是因为在Sorenson Media设置服务器的任何人都在使用mime-type text/html
的javascript文件。将其插入脚本标记的src
属性时,浏览器会推断它是javascript,尽管如此。
但是,当它作为网页访问时,Web浏览器会遵循mime-type并尝试显示它。但是,这不是HTML文档! Chrome猜测它应该是这样的:
<head></head><body>var embedCode = "<object style="outline:none;" width="100%" height="100%" type="application/x-shockwave-flash" data="http://static.cdn.360.sorensonmedia.com/1/flash/flowplayer-3.2.2.swf" id="videoPlayer_api" title="Adobe Flash Player">";
embedCode += "<param name="movie" value="http://static.cdn.360.sorensonmedia.com/1/flash/flowplayer-3.2.2.swf">";
embedCode += "<param value="transparent" name="wmode">";
embedCode += "<param value="true" name="allowfullscreen">";
embedCode += "<param value="always" name="allowscriptaccess">";
embedCode += "<param value="high" name="quality">";
embedCode += "<param value="false" name="cachebusting">";
embedCode += "<param value="#000000" name="bgcolor">";
embedCode += "<param value="config=";
embedCode += "{"play":{"replayLabel":"","opacity":0},"playlist":[{"url":"http://cdnimages.sorensonmedia.com/a6d2ad22-a413-4443-8cff-8dc210da7fcd/d18…quot;13cd1ac61aba5s4e92SbecaR0a18bbe36111","autoPlay":false, "fileVersionId":"5d231001b55b0945a5xaf4dd54cfe2999567","captionUrl":""},{"url":"http://cdnimages.sorensonmedia.com/a6d2ad22-a413-4443-8cff-8dc210da7fcd/d18…screen":{"bottom":10},"onLoad":""}";
embedCode += "" name="flashvars">";
embedCode += "</object>";
var VideoEmbed = function (publishing_id, embed_code) {
this.publishing_id = publishing_id;
this.embed_code = embed_code;
this.container = document.getElementById(this.publishing_id);
/**
* Determines the installed (and enabled) version of flash.
* @returns [major, minor]
*/
function get_flash_version() {
var fo, ver,
RE = /(\d+)[^\d]+(\d+)[^\d]*(\d*)/;
try {
ver = navigator.plugins["Shockwave Flash"].description.slice(16);
} catch(e) {
try {
fo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
ver = fo && fo.GetVariable("$version");
} catch(err) {
try {
fo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
ver = fo && fo.GetVariable("$version");
} catch(err2) { }
}
}
ver = RE.exec(ver);
return ver ? [ver[1], ver[3]] : [0, 0];
}
/**
* Inserts a flash embed code in a provided DOM element.
*/
function insert_embed_code() {
// embed the video
try {
this.container.innerHTML = this.embed_code;
} catch (err) {}
// for embedding video in WinXP Firefox
if (navigator.appVersion.indexOf("Windows") != -1) {
if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)) {
this.container.addEventListener("mousedown", function(event) {
event.preventDefault();
return false;
}, false);
}
}
}
/**
* Inserts a prompt instructing user to install flash in a provided DOM
* element.
*/
function prompt_to_install_flash() {
// set href attribute of <a> container and remove onclick handler
try {
this.container.setAttribute('href', 'http://www.adobe.com/go/getflash');
this.container.removeAttribute('onclick');
this.container.onclick = null; // for IE7
} catch (err) { }
// display message to install flash
this.container.innerHTML = '' +
'<p style="text-align: center; ' +
'margin: 1.5em 3em; ' +
'padding: 1em; ' +
'border: 1px solid #ccc; ' +
'border-radius: 6px; ' +
'background-color: #ddd; ' +
'color: #3494d1; ' +
'text-shadow: none;">' +
'To view this video, please install the latest version of Flash.' +
'<br><br>' +
'<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" '="" +="" 'style="outline: none; border: 0 none;">' +
'</p>';
}
/**
* If a user has flash installed, this embeds a video. Otherwise, it
* instructs the user to install flash.
*/
this.display = function() {
// determine flash version
var flash_version = get_flash_version.call(this);
// TODO: allow for specifying version as argument
if (flash_version[0] > 10 || flash_version[0] == 10 && flash_version[1] >= 1) {
insert_embed_code.call(this);
}
// appropriate flash version not installed
else {
prompt_to_install_flash.call(this);
}
}
};
var embed = new VideoEmbed("13cd1ac61aba5s4e92SbecaR0a18bbe36111", embedCode);
embed.display();
</a></body>
这种猜测有点奏效,但正如你所看到的那样,显示出很多不应该存在的gunk。
此外,这依赖于服务器配置错误,浏览器在将javascript解释为html时做出了正确的猜测。不要使用它!
如果您阅读了javascript代码,您会发现大部分内容只是Flash无法使用的后备内容。你可能能够在没有后备的情况下破解html版本,但如果Sorenson Media一起采取行动,它将很容易被打破。
如果要弄清楚如何在此HTML模块中包含javascript,那么这是最佳选择。
答案 1 :(得分:0)
结束了一个非常简单的解决方案。我将HTML模块放入“基本文本编辑器”,并将渲染模式设置为“raw。这保留了<script>
标签。没有我以前的解决方案,但它可以工作。