javascript - 使用带有 Javascript 的数组检测媒体文件并返回所有网址

标签 javascript jquery

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

目的是返回我希望脚本找到的所有媒体链接的 URL 列表(*.mp3、*.ogg、*.mp4、*.pdf 等),然后我可以单击打开这些链接在一个单独的窗口中,在自定义视频播放器/音乐播放器/pdf 阅读器等中仅包含该文件。我意识到并非所有网站都将这些内容公开,我将为这些内容制定解决方法。

我在此处、搜索引擎和 GitHub 上搜索了相关脚本或文档,但没有成功。

PS: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);
        }
      }
    }
});

关于javascript - 使用带有 Javascript 的数组检测媒体文件并返回所有网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36702197/

相关文章:

javascript - 如何让 JS 工具提示在 Shadow DOM 中工作?

javascript - html表单重置不触发选择onchange

javascript - Uncaught Error : Make sure that slide 0 has an image/video src lightgallery

javascript - 在 yii 中创建跨域通信的 API

javascript - 使用 highcharts.js 改变背景颜色

javascript - 使用 jQuery 查找链接时 document.links 是否更快?

javascript - html 元素沿时间轴的均匀间距

javascript - JSONP 不适用于跨域 AJAX

javascript - AngularJS + CSS : best practice for a live preview?

javascript - 阻止来自元素的点击事件,但不阻止来自 <a> 子元素的点击事件