Итак, я пишу сценарий Greasemonkey для этого сайта. В любом случае, моя проблема в том, что я не могу прикрепить событие onclick к недавно созданному якору.
Я не знаю, что не так, может быть, потому что я в Greasemonkey. Вот почему это не сработало, как ожидалось?
function createButton() {
var a = document.createElement('a');
var css = document.createElement('style');
css.type = 'text/css';
css.innerHTML = '#prt { position:absolute; right:3em; top: 6em; font-family: Arial,Helvetica,sans-serif; font-weight:bold; font-size:125%; background: #777777 none repeat scroll 0 0; color: white; padding: 6px 12px;}'
a.href = '#';
a.innerHTML = 'Print Topic';
a.id = 'prt';
a.onclick = getTopic; // DOESN'T WORK
document.body.insertBefore(a, document.body.lastChild);
document.body.appendChild(css);
}
Я попробовал другую технику, например setAttribute
a.setAttribute('onclick', function() { alert("hey"); });
setAttribute также не работает ..
Как получилось?
Привет, ребята,
Я заставил это работать. Кто-то помог мне по IRC #greasemonkey .. Спасибо, братан! *
Таким образом, проблема использования setAttribute или свойства .onclick элемента состоит в том, что greasemonkey не поддерживает их, а возвращает консоль JavaScript «Component not available».
Если вы столкнулись с этой проблемой, прежде чем использовать
element.addEventListener ('click', myClickHandler, false);
Вот вики: http://wiki.greasespot.net/XPCNativeWrapper#Event_Handlers