使用Javascript数组检测媒体文件并返回所有URL

Detect media files using an array with Javascript and return all the urls

本文关键字:返回 URL 媒体文件 Javascript 数组 检测 使用      更新时间:2023-09-26

我正试图找到一种方法,使用Javascript提取任何网站上媒体文件的链接。我正在使用Unity3D,但它与使用uWebkit有关,uWebkit是一个Web浏览器插件,这个Web浏览器插件允许我将Javascript注入网站,所以这将(希望)成功。

目的是返回我希望脚本找到的所有媒体链接的URL列表(*.mp3、*.ogg、*.mp4、*.pdf等),然后我可以单击这些链接在一个单独的窗口中打开,在自定义视频播放器/音乐播放器/pdf阅读器等中只打开该文件。

我在这里、搜索引擎和GitHub上搜索过关于它的脚本或文档,但都没有成功。

附言:jQuery也不错。

基于Caleb的答案,我只想使用数据结构来存储您想要检查的文件类型,从而优化它的性能。

var extensions = {};
extensions["mp3"]=true;
extensions["mp4"]=true;
extensions["pdf"]=true;
/* etc */
var extPattern = /'.([0-9a-z]+)(?:['?#]|$)/i;
var links = [];
$('a').each(function(){
    var href = $(this).attr('href');
    if (typeof href !== 'undefined') {
      var ext = href.match(extPattern) 
      if(ext!= null && ext.length >1) {
        if(extensions[ext] != undefined) {
          links.push(href);
        }
      }
    }
});

快速而肮脏的jQuery版本可以点击页面上的所有标签,您可以从这个分支

var links = [];
$('a').each(function(){
    var href = $(this).attr('href');
    if (typeof href !== 'undefined') {
        if (href.indexOf('mp3') > -1 || href.indexOf('ogg') > -1 || href.indexOf('mp4') > -1 || href.indexOf('pdf') > -1) {
            links.push(href);
        }
    }
});
console.log(links);