【问题标题】:Embedding YouTube Video with jQuery Templates - C#使用 jQuery 模板嵌入 YouTube 视频 - C#
【发布时间】:2012-01-06 19:15:48
【问题描述】:

我正在使用 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 正确返回。但这就是错误。 这可能是什么原因造成的?谢谢。

【问题讨论】:

  • 显示 youtube 网址的错误消息缺少视频 ID (http://www.youtube.com/v/)。你确定占位符${VideoId} 被替换了吗?
  • 您确定 ${VideoId} 不是空字符串吗?
  • 打开 firebug 或其他一些 javascript 控制台以检查页面加载后是否正在生成 url。您的 VideoId 可能会在某处重置。

标签: jquery youtube jquery-templates


【解决方案1】:

你应该从字符串中取出${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>

【讨论】:

    【解决方案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 字符串值的一部分。

    【讨论】:

      猜你喜欢
      • 2011-09-20
      • 2011-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-07
      • 2015-09-07
      • 2011-10-30
      • 1970-01-01
      相关资源
      最近更新 更多