0

我有一个遍历页面并返回所有选定元素的脚本 - 在这种情况下,<embed...>

例如,当在博客中找到 YouTube 视频时,它会返回一个 iframe。我可以获取 iframe src,通过函数传递它,然后正则表达式视频 ID。但是,当 YouTube 视频位于 YouTube 页面中时,其嵌入方式不同,并且视频 ID 位于“flashvars”属性中。

这是一个示例视频嵌入: http: //pastie.org/7155840

你们会推荐什么将src确认为YouTube并从中获取视频ID的最佳方法qlo5XHZ8-zI

4

1 回答 1

2

这是一个不使用正则表达式的解决方案。

首先确认它是youtube:

if (e.src.substr(0, 19) != "http://s.ytimg.com/") return false

然后提取视频id:

// get the flashvars
var flashvars = e.getAttribute("flashvars")
// convert flashvars string to key-value pairs
flashvars = flashvars.split("&").map(function(entry) {
  return entry.split("=", 2)
})
// look up the value of the "video_id" key
var video_id = flashvars.filter(function(entry) {
  return entry[0] == "video_id"
})[0]

video_id现在应该是视频的 ID。

于 2013-03-28T22:42:20.937 回答