我正在使用jQuery模板来嵌入用户发布的YouTube视频。我能够获取视频ID并将其保存到数据库中,一切正常。但是,当尝试使用jQuery模板嵌入视频时,如下所示:
{{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 :(得分: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字符串值的一部分。
答案 1 :(得分: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>