单击时附加按钮不调用功能

时间:2017-09-13 00:34:17

标签: javascript

我制作了一个userscript,在form中添加了两个输入元素,第一个用作textarea,第二个用作button。它们在本地/静态页面上工作得非常好但如果我尝试点击应该调用button的{​​{1}},则不会发生任何事情。

编辑:我忘了提到的一点是,这个用户脚本应该与另一个添加/编辑元素的用户脚本一起工作,所以可能存在加载时序的问题。我认为我已经解决了在页面加载完成后加载我的自定义用户脚本的问题,但我仍有问题..

这是剧本:

function uuid()

使用工作脚本编辑:

var qrform, rbutton, milliseconds, randomnumber, css;
css = document.createElement("style");
css.type = "text/css";
/*jshint multistr: true */
css.innerHTML = "#rb{\
    display: -webkit-flex;\
    display: flex;\
    -webkit-align-items: stretch;\
    align-items: stretch;\
    height: 25px;\
    margin-top: 1px;\
    text-transform: uppercase;\
    font-size: 10px;\
    }\
    #rb #uform + input {\
    text-transform: uppercase;\
    font-size: 10px !important;\
    }\
    #uform{\
    width:95%;\
    text-align:center;\
    }\
    ";
document.body.appendChild(css);
qrform = document.getElementById("qr").getElementsByTagName("form")[0];
rbutton = document.createElement('div');
rbutton.setAttribute("id", "rb");
qrform.appendChild(rbutton);
rbutton.innerHTML = "<input id=\"uform\" type=\"text\" name=\"UUID\" placeholder=\"UUID\" readonly><input type=\"button\" value=\"GENERATE\" onclick=\"uuid()\">";

function uuid() {
    milliseconds = Date.now();
    randomnumber = Math.floor(Math.random() * 365 * 86400000);
    document.getElementById("uform").value = milliseconds - randomnumber;
    document.getElementById("uform").readOnly=true;
}

1 个答案:

答案 0 :(得分:0)

点击按钮后会出现什么错误? 您可以尝试在插入按钮之前定义该功能。但是,它通常被认为是使用内联onclick这样的不良做法。添加事件处理程序会更好。

var button = document.createElement('button')
button.addEventListener('click', uuid)