2011-11-26 144 views
11

我正在使用jQuery模板嵌入用户发布的YouTube视频。我能够获取视频ID并将其保存到数据库中,并且一切正常。然而试图用jQuery模板嵌入视频如下时:用jQuery模板嵌入YouTube视频 - C#

{{if streamObj.TypeOf == 3}} 
      <object width="425" height="350" data='http://www.youtube.com/v/${VideoId}' type="application/x-shockwave-flash"> 
      <param name="src" value='http://www.youtube.com/v/${VideoId}' /></object> 
{{else}} 

我得到以下错误:"NetworkError: 404 Not Found - http://www.youtube.com/v/"

${VideoId}streamObj.TypeOf回归正常。但那是错误。 这可能是什么原因造成的?谢谢。

+0

显示YouTube网址的错误消息缺少视频ID('http:// www.youtube.com/v /')。你确定占位符“$ {VideoId}”被替换吗? –

+0

你确定$ {VideoId}不是一个空字符串吗? –

+3

打开萤火虫或其他一些javascript控制台,检查网页加载后是否产生网址。您的VideoId可能会在某处被重置。 –

回答

2

试试这个。

<object width="425" height="350" data='http://www.youtube.com/v/' + ${VideoId} type="application/x-shockwave-flash"> 
    <param name="src" value='http://www.youtube.com/v/' + ${VideoId} /> 
</object> 

或者更好。

var videoUrl = 'http://www.youtube.com/v/' + ${VideoId}; 

<object width="425" height="350" data=videoUrl type="application/x-shockwave-flash"> 
    <param name="src" value=videoUrl /> 
</object> 

我相信,在你的代码模板标签不会因该模板标签被设置为一个js字符串值的一部分的事实corretly评估。

0

你应该得到${VideoId}出字符串和使用字符串操作一样

var videoIdString=${videoId}; 

var urlString='http://www.youtube.com/v/' + videoIdString ; 

因为:使用引号之间

在此页面

,香港专业教育学院从未见过$ {}。

http://api.jquery.com/template-tag-equal/

因此您的代码将是:

var videoIdString=${videoId}; 

<object width="425" height="350" data='http://www.youtube.com/v/'+videoIdString 
type="application/x-shockwave-flash"> 
<param name="src" value='http://www.youtube.com/v/'+videoIdString /></object>