在 OSX 10.12.6 下测试并使用 Safari 11.0.1;
我想使用 oninput="function()"
在<div>
与 contenteditable="true"
放。准系统测试页案例适用于 <textarea>
, 但不是 <div>
.这是测试代码;首先更改脚本 var load getElementById
从 tpagecontentx 到 dpagecontentx 的参数可以看到它与 textarea 一起使用而不与 div 一起工作。
<HTML>
<HEAD>
<SCRIPT>
function onCharInput()
{
var conpagechars = document.getElementById("tpagecontentx").value;
var conpagecharcount = conpagechars.length.toString();
document.getElementById("pccount").innerHTML = conpagecharcount;
}
</SCRIPT>
<title>Editor</title>
</HEAD>
<BODY>
<center>
<div id="dpagecontentx" oninput="onCharInput()" name="dpagecontent" contenteditable="true" style="font-family: Courier; padding: .5em; text-align: left; border-color: #000000; border-width: 1px; border-style: solid; width: 60em; height: 24em;"></div>
<TEXTAREA id="tpagecontentx" oninput="onCharInput()" NAME="tpagecontent" ROWS=10 COLS=80>foo</TEXTAREA>
</center>
<p>
Content Size: <span id="pccount"></span>
</p>
</BODY>
</HTML>
最佳答案
oninput
仅当 <input>
的值时才会触发事件, <select>
, 或 <textarea>
元素已更改,对于 <div>
标签 你可以使用 keyup
事件来检测变化,这是工作示例:
function onCharInput(e)
{
// here I use tagName property to get the element content
// according to its type
if (e.target.tagName === 'DIV') {
var conpagechars = document.getElementById("dpagecontentx").innerText;
} else {
var conpagechars = document.getElementById("tpagecontentx").value;
}
var conpagecharcount = conpagechars.length.toString();
document.getElementById("pccount").innerHTML = conpagecharcount;
}
<center>
<div id="dpagecontentx" onkeyup="onCharInput(event)" name="dpagecontent" contenteditable="true" style="font-family: Courier; padding: .5em; text-align: left; border-color: #000000; border-width: 1px; border-style: solid; width: 60em; height: 24em;"></div>
<TEXTAREA id="tpagecontentx" oninput="onCharInput(event)" NAME="tpagecontent" ROWS=10 COLS=80>foo</TEXTAREA>
</center>
<p>
Content Size: <span id="pccount"></span>
</p>
关于javascript - oninput ="function()"适用于 textarea,但不适用于 Safari 中的 div。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47378087/