添加onclick属性以使用JavaScript输入

Ale*_*lex 21 javascript input onclick

我正在其中一个事件中创建用户输入:

var throwConnectBox = function() {
    chat_box = document.getElementById('box');
    div = window.parent.document.createElement('div');
    input = window.parent.document.createElement('input');
    input.type = "submit";
    input.value = "Join chat";
    input.onclick = "conn.send('$connect\r\n');";
    div.appendChild(input);
    chat_box.appendChild(div);
}
Run Code Online (Sandbox Code Playgroud)

...但结果输入没有onclick属性.我试着用

    input.onclick = conn.send('$connect\r\n');
Run Code Online (Sandbox Code Playgroud)

......相反,但也没有工作.我究竟做错了什么?

Ste*_*son 39

试试这个:

 input.onclick = function() { conn.send('$connect\r\n'); };
Run Code Online (Sandbox Code Playgroud)

史蒂夫

  • 有趣.我很快尝试使用"onclick"处理程序创建一个元素并将其添加到DOM中,并且它没有显示在HTML部分中(但是onclick处理程序在那里并且正在工作).尝试向输入添加ID属性(假设ID为"test"),并在Firebug的控制台中执行以下代码(不带单引号):'document.getElementById("test").onclick'.你回来了吗? (3认同)

Bil*_*oom 6

这里有一条线存在问题; 我已经为你纠正了它:

 var throwConnectBox = function() {
     chat_box = document.getElementById('box');
     div = window.parent.document.createElement('div');
     input = window.parent.document.createElement('input');
     input.type = "submit";
     input.value = "Join chat";
     /* this line is incorrect, surely you don't want to create a string? */
     // input.onclick = "conn.send('$connect\r\n');";?
     input.onclick = function() { 
         conn.send('$connect\r\n'); 
     };
     div.appendChild(input);
     chat_box.appendChild(div);
 }
Run Code Online (Sandbox Code Playgroud)

那更有意义吗?