У меня есть скрипт Greasemonkey, который внедряет javascript в страницу, которая должна добавить гиперссылку, которая при нажатии вызывает переменную.Переменная - это функция, которая скрывает ссылку и показывает игрока.Однако, когда я нажимаю на ссылку, журнал ошибок страницы говорит, что playaudio не определен.Вот мой код:
// ==UserScript==
// @name AudioPlayer
// @include http://mysite.com/*
// ==/UserScript==
function exec(fn) {
var script = document.createElement('script');
script.setAttribute("type", "application/javascript");
script.textContent = '(' + fn.toString() + ')();';
document.body.appendChild(script); // run the script
//document.body.removeChild(script); // clean up
}
window.addEventListener("load", function () {
exec(function () {
jQuery(".field-name-field-mp3link").append('<audio controls="" autoplay="" style="margin-left:10px; display:none;" src=""></audio>');
var playaudio = (function () {
jQuery('.field-name-field-mp3link > audio').attr('src', jQuery('.field-name-field-mp3link > .field-items > .field-item > a').attr('href'));
jQuery('.field-name-field-mp3link > audio').css('display', 'block');
jQuery('.field-name-field-mp3link > a').css('display', 'none');
});
jQuery(".field-name-field-mp3link").append('<a href="javascript:playaudio();" style="margin-right:5px;">Listen</a>');
});
}, false);
Я должен добавить, что он отлично работает, когда я использую встроенную консоль Chrome Javascript для запуска кода.