video.js在div中动态附加html无法正常工作

时间:2014-06-03 15:34:03

标签: jquery html video.js

我有一个自定义对象CustomvideoObject。我们将这个对象放在aspx页面中,它会在飞行中创建与video.js相关的标签。为了实现这一点,我在app_code文件夹中有类,我使用RegisterStartupScript方法将脚本注册到页面中。问题是它不会在我想要视频渲染的页面上添加div。

我有这样的代码:

var cstext = new StringBuilder();
                     //   cstext.Append("<script type=\"text/javascript\" >");
                        cstext.Append("$(document).ready(function(){");
                        cstext.Append("$(\'#movie01_div\').html(\'");
                        cstext.Append("<video id=\"");
                        cstext.Append(Vdo.FileName);
                        cstext.Append("\"");
                        cstext.Append(" runat=\"server\"");
                        cstext.Append(" class=\"video-js vjs-default-skin\"");
                        cstext.Append(" controls");
                        cstext.Append(" preload=\"Auto\"");
                        cstext.Append(" width=");
                        cstext.Append("\"");
                        cstext.Append(Vdo.VideoWidth);
                        cstext.Append("\"");
                        cstext.Append(" height=");
                        cstext.Append("\"");
                        cstext.Append(Vdo.VideoHeight);
                        cstext.Append("\"");
                        cstext.Append(" poster= ");
                        cstext.Append("\"");
                        cstext.Append(Vdo.Poster);
                        cstext.Append("\"");    
                        cstext.Append(" data-setup=\"{}\" >");
                        cstext.Append(" <source src=\"");
                        cstext.Append(Vdo.Url);
                        cstext.Append("\"");
                        cstext.Append(" type='");
                        cstext.Append(contentType);
                        cstext.Append("'");
                        cstext.Append(" />");
                        cstext.Append(" <track kind=\"captions\" src=\"");
                        cstext.Append(Vdo.CaptionsUrl);
                        cstext.Append("\"");
                        cstext.Append(" srclang=\"en\" label=\"English\" default ></track>");
                        cstext.Append(" </video>" )    ;
                       cstext.Append("')");
                       cstext.Append("});");
                     //   cstext.Append("</script>");



                        cs.RegisterStartupScript(cstype, csname, cstext.ToString(), false);

当我运行页面时,它就像是:

$(document).ready(function(){$('#movie01_div').html('
      video renders fine here..
')});

有人可以帮助我如何在div '#movie01_div'中添加视频。我在页面的头部添加了jquery。

1 个答案:

答案 0 :(得分:0)

要在JS中附加字符串,您可以执行以下操作:

var cstext = [
    "<div id='somediv'>",
    "    <div class='header'></div>",
    "    <div class='body'></div>",
    "    <div class='footer'></div>",
    "</div>",
].join("")

我认为应该大大清理上面的代码,以便更容易阅读/帮助推理这里可能出错的原因。

我也不确定RegisterStartupScript() - 您使用什么语言发出客户端响应?以下是MSDN对此的说法:

Similar to the RegisterClientScriptBlock method, the RegisterStartupScript method
emits the script just before the closing tag of the Page object's <form runat= server>
element. Be sure to include opening and closing <script> elements around the script
block string specified in the script parameter.