Uni FM96.7 Player Updater

產生下載連結,修改 Flash Player 為 HTML5 內鍵撥放器

当前为 2016-06-21 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Uni FM96.7 Player Updater
  3. // @name:zh-TW FM96.7 環宇廣播電台線上收聽播放器調整
  4. // @namespace http://www.twsiyuan.com/
  5. // @version 0.21
  6. // @description:zh-TW 產生下載連結,修改 Flash Player 為 HTML5 內鍵撥放器
  7. // @author Siyuan
  8. // @match http://www.uni967.com/newweb/AOD2_no.php*
  9. // @grant none
  10. // @require http://code.jquery.com/jquery-latest.js
  11. // @description 產生下載連結,修改 Flash Player 為 HTML5 內鍵撥放器
  12. // ==/UserScript==
  13.  
  14. $(document).ready(function() {
  15. var embed = $("embed");
  16. // 音源位置
  17. var audioUrl = getUrlParameterFromString(embed.attr("flashvars"), "son");
  18. // 節目資料網頁位置
  19. var id = getUrlParameterFromString(window.location.search.substring(1), "ID");
  20. var dataUrl = "http://www.uni967.com/newweb/index.php?menu=2&page=2_1&ID=" + id;
  21.  
  22. $.get(dataUrl, function(data) {
  23. // 分析資料網頁,抓取節目名稱
  24. var title = $(data).find("span.news_title_blue").text();
  25. var parent = embed.parent();
  26. // 產生下載連結
  27. var download = $('<a href="' + audioUrl + '" download="' + title + '">Download (' + title + ')</a>');
  28. // 產生音源播放 (HTML5 標準)
  29. var paramSaveName = "ui967Volume";
  30. var volumeChanged = "if(typeof(Storage) !== 'undefined'){localStorage.setItem('" + paramSaveName + "', this.volume);}";
  31. var loadStart = "if(typeof(Storage) !== 'undefined'){this.volume=localStorage.getItem('" + paramSaveName + "');}";
  32. var player = $('<audio controls autoplay src="' + audioUrl + '" onvolumechange="' + volumeChanged + '" onloadstart="' + loadStart + '" style="width:100%;">Your browser does not support the audio tag.</audio>');
  33. parent.append(player);
  34. parent.append(download);
  35. embed.remove();
  36. });
  37. });
  38.  
  39. var getUrlParameterFromString = function getUrlParameter(sUrl, sParam) {
  40. var sPageURL = decodeURIComponent(sUrl);
  41. var sURLVariables = sPageURL.split('&');
  42.  
  43. for (var i = 0; i < sURLVariables.length; i++) {
  44. var sParameterName = sURLVariables[i].split('=');
  45. if (sParameterName[0] === sParam && sParameterName.length >= 2) {
  46. return sParameterName[1] === undefined ? '' : sParameterName[1];
  47. }
  48. }
  49. };