Javascript Div onkeydown处理
在我的代码中,我用这个代码在div的内部创建div 主页: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"; } <
<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
。无论如何,afaikcontentEditable
仅在设置属性时有效,设置属性没有影响。
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
}