您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
[FR] remplace les applets flash par un joli tag <audio> pour écouter les morceaux depuis le navigateur
// ==UserScript== // @name FlashIsDead-LongLiveToFlash // @namespace https://greasyfork.org/users/4785 // @author nil // @version 0.7 // @grant none // @description [FR] remplace les applets flash par un joli tag <audio> pour écouter les morceaux depuis le navigateur // @include http://www.editions-musicales-chardonnieras.fr/styles.html // @include http://www.editions-musicales-chardonnieras.fr/bonus.html // @include http://jpzico.eklablog.com/* // ==/UserScript== // http://www.editions-musicales-chardonnieras.fr/styles.html (function emc_myinit() { function changeSWFtoAudioTag() { // playback var xpathExpression = '//object[@type = "application/x-shockwave-flash"][starts-with(@data, "dewplayer.swf?mp3=mp3-play-back/")]'; var xpathResult = document.evaluate( xpathExpression, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); for (var node, i = 0; node = xpathResult.snapshotItem(i); i++) { var relative_url = node.getAttribute("data").substr(18); node.parentNode.innerHTML = "<audio controls=controls preload=none src='" + relative_url + "' type='audio/mpeg' >Your browser does not support the audio element.</audio>"; } // extrait xpathExpression = '//object[@type = "application/x-shockwave-flash"][starts-with(@data, "dewplayer.swf?mp3=")]'; var xpathResult = document.evaluate( xpathExpression, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); for (var node, i = 0; node = xpathResult.snapshotItem(i); i++) { var relative_url = node.getAttribute("data").substr(18); node.parentNode.innerHTML = "<audio controls=controls preload=none src='" + relative_url + "' type='audio/mpeg' >Your browser does not support the audio element.</audio>"; } } // return if not on www.editions-musicales-chardonnieras.fr if ("www.editions-musicales-chardonnieras.fr" !== location.host) return; // https://developer.mozilla.org/fr/docs/Web/API/MutationObserver // Selectionne le noeud dont les mutations seront observées var result_elt = document.getElementById('result'); // Options de l'observateur (quelles sont les mutations à observer) var config_obs = { attributes: true, attributeFilter: [ "class" ] }; // Fonction callback à éxécuter quand une mutation est observée function callback_obs(mutationsList) { for(var mutation of mutationsList) { if (mutation.type == 'attributes' && ! /wait/.test(result_elt.className)) { //console.log("attr change"); changeSWFtoAudioTag(); } } }; // Créé une instance de l'observateur lié à la fonction de callback var observer = new MutationObserver(callback_obs); // Commence à observer le noeud cible pour les mutations précédemment configurées observer.observe(result_elt, config_obs); })(); // http://jpzico.eklablog.com/ (function jpzico_myinit() { function changeSWFtoAudioTag() { // playback var xpathExpression = '//object[@type = "application/x-shockwave-flash"][@data = "/data/misc/players/player_mp3_maxi.swf"]'; xpathExpression += '/param[@name = "flashvars"][starts-with(@value, "mp3=http")]'; // &width=300* var xpathResult = document.evaluate( xpathExpression, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); for (var node, i = 0; node = xpathResult.snapshotItem(i); i++) { var url = node.getAttribute("value").substr(4); url = decodeURIComponent(url.substr(0, url.indexOf("&"))); node.parentNode.parentNode.innerHTML = "<audio controls=controls preload=none src='" + url + "' type='audio/mpeg' >Your browser does not support the audio element.</audio>"; } } // return if not on jpzico.eklablog.com if ("jpzico.eklablog.com" !== location.host) return; changeSWFtoAudioTag(); })();