2015-12-18 231 views
-3

我正在使用DNN并尝试从外部网站嵌入视频。我之前有一个工作代码,但没有保存它,因为它是1行,并认为它足够基本让我记住。供应商给了我们这个代码:如何用html嵌入.js视频?

<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

任何代码 – nicael

+0

那些浏览者已经对格式进行了编辑,以便代码和标记的文字变得可见。等待审核批准编辑。 – Trevor

回答

0

如果你简单地访问URL http://360.sorensonmedia.com/13cd1ac61aba5s4e92SbecaR0a18bbe36111/embedv2.js铬,你会看到以下页面(当然,有支持Flash,小程序将发挥。

screenshot of js file

这是因为谁架设服务器在Sorenson Media提供的MIME类型为text/html,当将其插入到脚本标记的src属性中时,浏览器将尽可能地推断它为javascript。

但是,当它作为网页访问时网页浏览器o beys mime类型并尝试显示它。但是,这不是一个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=&quot;; 
 
embedCode += &quot;{&quot;play&quot;:{&quot;replayLabel&quot;:&quot;&quot;,&quot;opacity&quot;:0},&quot;playlist&quot;:[{&quot;url&quot;:&quot;http://cdnimages.sorensonmedia.com/a6d2ad22-a413-4443-8cff-8dc210da7fcd/d18…quot;13cd1ac61aba5s4e92SbecaR0a18bbe36111&quot;,&quot;autoPlay&quot;:false, &quot;fileVersionId&quot;:&quot;5d231001b55b0945a5xaf4dd54cfe2999567&quot;,&quot;captionUrl&quot;:&quot;&quot;},{&quot;url&quot;:&quot;http://cdnimages.sorensonmedia.com/a6d2ad22-a413-4443-8cff-8dc210da7fcd/d18…screen&quot;:{&quot;bottom&quot;:10},&quot;onLoad&quot;:&quot;&quot;}&quot;; 
 
embedCode += &quot;" 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 &amp;&amp; fo.GetVariable("$version"); 
 

 
     } catch(err) { 
 
     try { 
 
      fo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"); 
 
      ver = fo &amp;&amp; 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] &gt; 10 || flash_version[0] == 10 &amp;&amp; flash_version[1] &gt;= 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>

这个猜测这类作品,但你可以看到有很多黏糊糊的显示是不应该。

此外,这是依赖于服务器配置错误,浏览器做出正确的猜测时,将javascript解释为html。不要使用它!

如果您阅读了JavaScript代码,您会发现如果Flash不可用,您将看到大部分内容仅仅是一个回退。你可能能够在没有回退的情况下将html版本整合在一起,但如果Sorenson Media一起行动,它将很容易被破坏。

如果想知道如何在此HTML模块中包含JavaScript,您将是最佳选择。

0

结束了一个非常简单的解决方案。我把HTML模块放到“基本文本编辑器”中,渲染模式设置为“原始”,这样可以保留<script>标签,没有我以前的解决方案,但它可以工作