Bandcamp bookmarklet无效

时间:2013-06-10 13:22:54

标签: javascript bookmarklet

我使用此脚本生成下载链接:

javascript: (function () {
  function callback() {
    (function ($) {
      var jQuery = $;
      window.files = new Array;
      window.i = 0;
      grabFiles();
      window.i = 0;
      $("#track_table div.dl_link").each(function (index) {
        $(this).show();
        $(this).html('<a href="' + window.files[i] + '">download</a>');
        window.i = window.i + 1;
      });

      function grabFiles() {
        $(TralbumData.trackinfo).each(function (index) {
          window.files[i] = this['file']['mp3-128'];
          window.i = window.i + 1;
        });
      }
    })(jQuery.noConflict(true))
  }
  var s = document.createElement("script");
  s.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js";
  if (s.addEventListener) {
    s.addEventListener("load", callback, false)
  } else if (s.readyState) {
    s.onreadystatechange = callback
  }
  document.body.appendChild(s);
})()

我发现了一个不起作用的页面: A Bird Story «OST»

它可以获得第一首曲目的下载链接,但它不会显示它。

有人有想法吗?

1 个答案:

答案 0 :(得分:0)

刚刚找到解决方案。 x)的

grabFiles 函数中缺少某些内容:

function grabFiles() {
  $(TralbumData.trackinfo).each(function (index) {
    if (this['file'] != null) {
      window.files[i] = this['file']['mp3-128'];
    }
    window.i = window.i + 1;
  });
}

现在,当文件 null 时,它不会尝试读取不存在的 mp3-128 值。 ^^;