Javascript Div onkeydown处理

Javascript Div onkeydown处理,javascript,onkeypress,Javascript,Onkeypress,在我的代码中,我用这个代码在div的内部创建div 主页: <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <script type="text/javascript"> function Set() { document.getElementById("maindiv").designMode = "On"; } <

在我的代码中,我用这个代码在div的内部创建div

主页:

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<script type="text/javascript">
    function Set() {
        document.getElementById("maindiv").designMode = "On";
    }
</script>
<script src="Scripts/RichTextBox.js" type="text/javascript"></script>
    <title></title>
</head>

<body onload="Set()">
<div id="maindiv" contenteditable="true" onclick="javascript:mainDivclick()" style="width: 500px; height: 170px; border-style: solid; text-align: left; font-size: 17px; font-family: Arial; overflow: scroll;"></div>
</body>
</html>

出于某种原因,按键时没有一个断点不触发(我只需要1个onkeypress事件,我只是显示我尝试过的内容)

这一行:
newFrame.on(“keypress”,function(){debugger;})中断您的代码
不是
iframe
元素的本机方法。只需像附加
keyup
一样附加事件侦听器。我尝试了“.onkeydown”、“on”和“.addeventlistener”-它们由于某种原因无法工作。我不知道还能尝试什么。很抱歉,我没有注意到
addEventListener()
中也有错误。它应该是
newFrame.addEventListener(“keyup”,function(){debugger;},false)在.divobj.addEventListener中的一个简化示例(“keyup”,函数(){alert('debugger');},false);作品但是newFrame.addEventListener(“keyup”,函数(){alert('debugger');},false);如果设置了
designMode
(并且有效),则根本不需要使用
contentEditable
。无论如何,afaik
contentEditable
仅在设置属性时有效,设置属性没有影响。
var childclick = false;

function mainDivclick() {

    if (!childclick) {
        insertDiv(document.getElementById("maindiv")); //create sub div in main div
    }
    childclick = false;
}

function insertDiv(divobj) {

    var num = maindiv.getElementsByTagName('div').length; //count number of divs in maindiv
    var divname = "subdiv" + num; //name for a new div
    var newFrame = document.createElement("div");
    newFrame.setAttribute("name", divname);
    newFrame.onclick = function () {  childclick = true; }; //check clicked
    newFrame.addEventListener("keyup", function () { alert('debugger'); }, false);
    newFrame.style.float = "left";
    newFrame.style.width = 'auto';
    newFrame.style.display = 'inline-block';
    newFrame.style.margin = 0;
    newFrame.style.padding = 0;
    newFrame.style.height = 20 + 'px';
    newFrame.style.border = "10px solid #6e6f6e";
    divobj.appendChild(newFrame);
    newFrame.contentEditable = 'true';
    newFrame.designMode = "On";
    newFrame.focus();
    setSelection(newFrame, 0); //move cursor to new div
}