Javascript Tampermonkey,在单击事件时从附加的DOM对象调用用户脚本函数

Javascript Tampermonkey,在单击事件时从附加的DOM对象调用用户脚本函数,javascript,jquery,greasemonkey,tampermonkey,Javascript,Jquery,Greasemonkey,Tampermonkey,我尝试了在StackOverflow上找到的几乎所有解决方案,但都没有帮到我。这是我的密码: //工具栏主体 var toolbarbody=“”+ “”+ “Tabelka”+ “Cena”+ “Opis”+ ''; //工具栏加载 函数loadToolbar(){ $(“#article desc wrapper”).css(“页边距顶部”、“320px”); $(“#产品详细信息”)。在(工具栏正文)之后; $(“#productDetailsHeadlineArea”)。在('Hehe

我尝试了在StackOverflow上找到的几乎所有解决方案,但都没有帮到我。这是我的密码:

//工具栏主体
var toolbarbody=“”+
“
    ”+ “
  • Tabelka
  • ”+ “
  • Cena
  • ”+ “
  • Opis
  • ”+ ''; //工具栏加载 函数loadToolbar(){ $(“#article desc wrapper”).css(“页边距顶部”、“320px”); $(“#产品详细信息”)。在(工具栏正文)之后; $(“#productDetailsHeadlineArea”)。在('Hehes')之后; }
    setTimeout(loadToolbar,2000)我建议您使用DOM解析HTML。您可以这样做:

    var toolbarbody = '<div id="scrappytoolbar" style="width:100%; height:30px; background-color: #ffea56;">' +
    '<ul>' +
    '<li id="litabelka">Tabelka</li>' +
    '<li id="licena">Cena</li>' +
    '<li>Opis</li>' +
    '</div>';
    var parser = document.createElement("div");
    parser.innerHTML = toolbarbody;
    var toolbarElement = parser.firstChild;
    // remove the toolbar from parser
    parser.removeChild(toolbarElement);
    
    但请记住,现在需要附加
    工具栏元素
    ,而不是HTML字符串:

    function loadToolbar() {
        $("#article-desc-wrapper").css("margin-top", "320px");
        // we now append DOM element
        $("#productDetailsMainInfo").after(toolbarElement); 
        $("#productDetailsHeadlineArea").after('<button id="guziktestowy">Hehes</button>');
    }
    
    函数加载工具栏(){
    $(“#article desc wrapper”).css(“页边距顶部”、“320px”);
    //我们现在附加DOM元素
    $(“#ProductDetailsMinInfo”)。在(工具栏元素)之后;
    $(“#productDetailsHeadlineArea”)。在('Hehes')之后;
    }
    

    还要注意,等待
    load
    或事件比使用
    setTimeout

    $('#litabelka')更好如果您还粘贴了用于添加单击处理程序的代码,则效果会更好。也许我可以告诉你你做错了什么。。。
    
    function loadToolbar() {
        $("#article-desc-wrapper").css("margin-top", "320px");
        // we now append DOM element
        $("#productDetailsMainInfo").after(toolbarElement); 
        $("#productDetailsHeadlineArea").after('<button id="guziktestowy">Hehes</button>');
    }