aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/api/inputevent
diff options
context:
space:
mode:
Diffstat (limited to 'files/zh-cn/web/api/inputevent')
-rw-r--r--files/zh-cn/web/api/inputevent/data/index.html69
-rw-r--r--files/zh-cn/web/api/inputevent/datatransfer/index.html72
-rw-r--r--files/zh-cn/web/api/inputevent/index.html61
-rw-r--r--files/zh-cn/web/api/inputevent/inputevent/index.html50
-rw-r--r--files/zh-cn/web/api/inputevent/inputtype/index.html82
-rw-r--r--files/zh-cn/web/api/inputevent/iscomposing/index.html96
6 files changed, 430 insertions, 0 deletions
diff --git a/files/zh-cn/web/api/inputevent/data/index.html b/files/zh-cn/web/api/inputevent/data/index.html
new file mode 100644
index 0000000000..278695993d
--- /dev/null
+++ b/files/zh-cn/web/api/inputevent/data/index.html
@@ -0,0 +1,69 @@
+---
+title: InputEvent.data
+slug: Web/API/InputEvent/data
+tags:
+ - API
+ - DOM Events
+ - InputEvent
+ - data
+translation_of: Web/API/InputEvent/data
+---
+<p>{{SeeCompatTable}}{{APIRef("DOM Events")}}</p>
+
+<div class="blockIndicator note">
+<p>请注意,<strong><code>data</code></strong> 属性在使用键盘输入时会返回输入的字符内容,但在粘贴、拖动时可能会返回 <code>null</code>,这取决于浏览器。浏览器也可能把一些数据保存在 {{domxref("InputEvent.dataTransfer")}},而不是该 <strong><code>data</code></strong> 属性中。</p>
+</div>
+
+<p>{{domxref("InputEvent")}} 接口中的只读属性 <strong><code>data</code></strong> 返回含有插入字符数据的 {{domxref("DOMString")}}。如果更改未插入文本(例如删除字符时),则其可能为空字符串。</p>
+
+<h2 id="语法">语法</h2>
+
+<pre class="syntaxbox">var <em>string</em> = <em>inputEvent</em>.data;</pre>
+
+<h3 id="返回值">返回值</h3>
+
+<p>一个 {{domxref("DOMString")}}。</p>
+
+<h2 id="示例">示例</h2>
+
+<p>在下面的简单示例中,我们在 <a href="https://wiki.developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event">input</a> 事件上设置了一个事件监听器,以便在对 {{htmlelement("input")}} 元素的内容进行任何更改时(通过键入或粘贴),通过 <strong><code>InputEvent.data</code></strong> 属性检索添加的文本,并在 <code>&lt;input&gt;</code> 下面的段落中报告。</p>
+
+<pre class="brush: html">&lt;p&gt;Some text to copy and paste.&lt;/p&gt;
+
+&lt;input type="text"&gt;
+
+&lt;p class="result"&gt;&lt;/p&gt;</pre>
+
+<pre class="brush: js">var editable = document.querySelector('input')
+var result = document.querySelector('.result');
+
+editable.addEventListener('input', (e) =&gt; {
+ result.textContent = "Inputted text: " + e.data;
+});</pre>
+
+<p>{{EmbedLiveSample('Examples')}}</p>
+
+<h2 id="规范">规范</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Status</th>
+ <th scope="col">Comment</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('InputEvents2','#dfn-data','data')}}</td>
+ <td>{{Spec2('InputEvents2')}}</td>
+ <td>Initial definition.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="浏览器兼容性">浏览器兼容性</h2>
+
+<div>
+<div class="hidden">此页上的兼容性表是从结构化数据生成的。如果您想贡献数据,请访问 <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> 并向我们发送一个请求。</div>
+
+<p>{{Compat("api.InputEvent.data")}}</p>
+</div>
diff --git a/files/zh-cn/web/api/inputevent/datatransfer/index.html b/files/zh-cn/web/api/inputevent/datatransfer/index.html
new file mode 100644
index 0000000000..9f53b7091a
--- /dev/null
+++ b/files/zh-cn/web/api/inputevent/datatransfer/index.html
@@ -0,0 +1,72 @@
+---
+title: InputEvent.dataTransfer
+slug: Web/API/InputEvent/dataTransfer
+tags:
+ - API
+ - DOM Events
+ - DataTransfer
+ - InputEvent
+translation_of: Web/API/InputEvent/dataTransfer
+---
+<p>{{SeeCompatTable}}{{APIRef("DOM Events")}}</p>
+
+<p>{{domxref("InputEvent")}} 接口中的只读属性 <strong><code>dataTransfer</code></strong> 返回一个 {{domxref("DataTransfer")}} 对象,该对象包含有关要添加到可编辑内容,或从可编辑内容中删除的富文本或纯文本数据的信息。</p>
+
+<h2 id="语法">语法</h2>
+
+<pre class="syntaxbox">var <em>dataTransfer</em> = <em>inputEvent</em>.dataTransfer</pre>
+
+<h3 id="返回值">返回值</h3>
+
+<p>一个 {{domxref("DataTransfer")}} 对象。</p>
+
+<h2 id="示例">示例</h2>
+
+<p>在下面的简单示例中,我们在 <a href="https://wiki.developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event">input</a> 事件上设置了一个事件监听器,以便在将任何内容粘贴到 {{htmlelement("p")}} 元素时,通过 <code><a href="https://wiki.developer.mozilla.org/en-US/docs/Web/API/DataTransfer/getData">InputEvent.dataTransfer.getData()</a></code> 方法检索其HTML源代码,并在输入框下面的段落中报告。</p>
+
+<p>尝试复制并粘贴提供的部分内容以查看效果。注意,部分浏览器对其支持不佳。</p>
+
+<pre class="brush: html">&lt;p&gt;&lt;span style="font-weight: bold; color: blue"&gt;Whoa, bold blue text!&lt;/span&gt;&lt;/p&gt;
+&lt;p&gt;&lt;span style="font-weight: italic; color: red"&gt;Exciting: italic red text!&lt;/span&gt;&lt;/p&gt;
+&lt;p&gt;Boring normal text ;-(&lt;/p&gt;
+
+&lt;hr&gt;
+
+&lt;p contenteditable="true"&gt;Go on, try pasting some content into this editable paragraph and see what happens!&lt;/p&gt;
+
+&lt;p class="result"&gt;&lt;/p&gt;</pre>
+
+<pre class="brush: js">var editable = document.querySelector('p[contenteditable]');
+var result = document.querySelector('.result')
+var dataTransferObj;
+
+editable.addEventListener('input', (e) =&gt; {
+ result.textContent = e.dataTransfer.getData('text/html');
+});</pre>
+
+<p>{{EmbedLiveSample('Examples', '100%', 250)}}</p>
+
+<h2 id="规范">规范</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Status</th>
+ <th scope="col">Comment</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('InputEvents2','#dom-inputevent-datatransfer','dataTransfer')}}</td>
+ <td>{{Spec2('InputEvents2')}}</td>
+ <td>Initial definition.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="浏览器兼容性">浏览器兼容性</h2>
+
+<div>
+<div class="hidden">此页上的兼容性表是从结构化数据生成的。如果您想贡献数据,请访问 <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> 并向我们发送一个请求。</div>
+
+<p>{{Compat("api.InputEvent.dataTransfer")}}</p>
+</div>
diff --git a/files/zh-cn/web/api/inputevent/index.html b/files/zh-cn/web/api/inputevent/index.html
new file mode 100644
index 0000000000..a0f8caeb80
--- /dev/null
+++ b/files/zh-cn/web/api/inputevent/index.html
@@ -0,0 +1,61 @@
+---
+title: InputEvent
+slug: Web/API/InputEvent
+translation_of: Web/API/InputEvent
+---
+<p>{{APIRef("DOM Events")}}</p>
+<div>{{SeeCompatTable}}&lt;</div>
+<p><strong><code>InputEvent</code></strong> 接口用来构造和字符输入相关的事件对象。</p>
+
+<h2 id="构造函数">构造函数</h2>
+
+<dl>
+ <dt>{{domxref("InputEvent.InputEvent", "InputEvent()")}}</dt>
+ <dd>创建一个 <code>InputEvent</code> 对象。</dd>
+</dl>
+
+<h2 id="属性">属性</h2>
+
+<p>除继承自 {{domxref("UIEvent")}} 和 {{domxref("Event")}} 接口的属性外,还有以下属性:</p>
+
+<dl>
+ <dt>{{domxref("InputEvent.data")}} {{readOnlyInline}}</dt>
+ <dd>返回当前输入的字符串,如果是删除操作,则该值为空字符串。</dd>
+ <dt>{{domxref("InputEvent.isComposing")}}{{readOnlyInline}}</dt>
+ <dd>返回一个布尔值,表明该事件是在触发 {{event("compositionstart")}} 事件之后且触发 {{event("compositionend")}} 事件之前触发的,也就是表明当前输入的字符是输入法的中途输入。</dd>
+</dl>
+
+<h2 id="方法">方法</h2>
+
+<p>除继承自 {{domxref("UIEvent")}} 和 {{domxref("Event")}} 接口的方法外,没有其它自身方法。</p>
+
+<h2 id="Specifications" name="Specifications">规范</h2>
+
+<table class="standard-table" style="height: 49px; width: 1000px;">
+ <thead>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Status</th>
+ <th scope="col">Comment</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{SpecName('DOM3 Events','#interface-InputEvent','InputEvent')}}</td>
+ <td>{{Spec2('DOM3 Events')}}</td>
+ <td>Initial definition.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="浏览器兼容性">浏览器兼容性</h2>
+
+<p>{{Compat("api.InputEvent")}}</p>
+
+
+<h2 id="相关链接">相关链接</h2>
+
+<ul>
+ <li>{{ event("beforeinput") }}</li>
+ <li>{{ event("input") }}</li>
+</ul>
diff --git a/files/zh-cn/web/api/inputevent/inputevent/index.html b/files/zh-cn/web/api/inputevent/inputevent/index.html
new file mode 100644
index 0000000000..9d6227b309
--- /dev/null
+++ b/files/zh-cn/web/api/inputevent/inputevent/index.html
@@ -0,0 +1,50 @@
+---
+title: InputEvent()
+slug: Web/API/InputEvent/InputEvent
+tags:
+ - API
+ - Constructor
+ - DOM
+ - DOM Events
+ - InputEvent
+translation_of: Web/API/InputEvent/InputEvent
+---
+<p>{{APIRef("DOM Events")}}{{SeeCompatTable}}</p>
+
+<p>构造函数 <strong><code>InputEvent()</code></strong> 返回一个新创建的 {{domxref("InputEvent")}} 对象。</p>
+
+<h2 id="语法">语法</h2>
+
+<pre class="syntaxbox"> <em>event</em> = new InputEvent(<em>typeArg</em>, <em>inputEventInit</em>);</pre>
+
+<h3 id="参数">参数</h3>
+
+<dl>
+ <dt><em>typeArg</em></dt>
+ <dd>一个 {{domxref("DOMString")}} ,表示事件的名称。</dd>
+ <dt><em>inputEventInit</em>{{optional_inline}}</dt>
+</dl>
+
+<p>一个 <code>InputEventInit</code> 字典,有以下字段:</p>
+
+<ul>
+ <li><code>inputType</code>(可选),指定可编辑内容更改类型的字符串,例如插入、删除或格式化文本。</li>
+ <li><code>data</code>(可选),包含要插入的字符的字符串。如果更改未插入文本(例如删除字符时),则其可能为空字符串。</li>
+ <li><code>dataTransfer</code>(可选),一个 {{domxref("DataTransfer")}} 对象,其中包含有关添加到可编辑内容,或从可编辑内容中删除的富文本或纯文本数据的信息。</li>
+ <li><code>isComposing</code>(可选),一个布尔值,指示事件是组合会话的一部分,这意味着它在 {{event("compositionstart")}} 事件之后,但在 {{event("compositionend")}} 事件之前。默认值为 <code>false</code>。</li>
+ <li><code>ranges</code>(可选),一个静态 {{domxref("Range")}} 数组,如果输入事件没有被取消,它将受到对DOM的更改的影响。</li>
+</ul>
+
+<p><em><code>InputEventInit</code></em><em> 字典也接受来自 {{domxref("UIEvent.UIEvent", "UIEventInit")}} 以及 {{domxref("Event.Event", "EventInit")}} 字典的值。</em></p>
+
+<h2 id="浏览器兼容性">浏览器兼容性</h2>
+
+<div class="hidden">此页上的兼容性表是从结构化数据生成的。如果您想贡献数据,请访问 <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> 并向我们发送一个请求。</div>
+
+<p>{{Compat("api.InputEvent.InputEvent")}}</p>
+
+<h2 id="参考">参考</h2>
+
+<ul>
+ <li>{{domxref("InputEvent")}},它构造的对象所属的接口。</li>
+</ul>
diff --git a/files/zh-cn/web/api/inputevent/inputtype/index.html b/files/zh-cn/web/api/inputevent/inputtype/index.html
new file mode 100644
index 0000000000..91136e1ed5
--- /dev/null
+++ b/files/zh-cn/web/api/inputevent/inputtype/index.html
@@ -0,0 +1,82 @@
+---
+title: InputEvent.inputType
+slug: Web/API/InputEvent/inputType
+tags:
+ - API
+ - DOM Events
+ - InputEvent
+ - inputType
+translation_of: Web/API/InputEvent/inputType
+---
+<div>{{APIRef("DOM Events")}}</div>
+
+<p>{{domxref("InputEvent")}} 接口中的只读属性 <strong><code>inputType</code></strong> 返回对可编辑内容所做更改的类型。可能的更改包括插入、删除和格式化文本。</p>
+
+<h2 id="语法">语法</h2>
+
+<pre class="syntaxbox">var <em>string</em> = <em>inputEvent</em>.inputType;</pre>
+
+<h3 id="返回值">返回值</h3>
+
+<p>一个 {{domxref("DOMString")}} 对象,包含所做输入的类型。有许多可能的值,例如<code>insertText</code>、<code>deleteContentBackward</code>、<code>insertFromPaste</code>和<code>formatBold</code>。有关可用输入类型的完整列表,请参阅 <a href="https://rawgit.com/w3c/input-events/v1/index.html#interface-InputEvent-Attributes">Input Events Level 1 规范的属性部分</a>。</p>
+
+<h2 id="示例">示例</h2>
+
+<p>此实例记录 <a href="/en-US/docs/Web/API/HTMLElement/input_event">input events</a> 的 <code>inputType</code>,在一个可编辑的 {{htmlElement("div")}} 中。</p>
+
+<h3 id="HTML">HTML</h3>
+
+<pre class="brush: html">&lt;p id="log"&gt;Input type: &lt;/p&gt;
+&lt;div contenteditable="true" style="margin: 20px;padding: 20px;border:2px dashed red;"&gt;
+ &lt;p&gt;Some sample text. Try inserting line breaks, or deleting text in different ways, or pasting different content in.&lt;/p&gt;
+ &lt;hr&gt;
+ &lt;ul&gt;
+ &lt;li&gt;A sample&lt;/li&gt;
+ &lt;li&gt;bulleted&lt;/li&gt;
+ &lt;li&gt;list.&lt;/li&gt;
+ &lt;/ul&gt;
+ &lt;p&gt;Another paragraph.&lt;/p&gt;
+&lt;/div&gt;</pre>
+
+<h3 id="JavaScript">JavaScript</h3>
+
+<pre class="brush: js">const log = document.getElementById('log');
+const editable = document.querySelector('div[contenteditable]');
+editable.addEventListener('input', logInputType);
+
+function logInputType(event) {
+ log.textContent = `Input type: ${event.inputType}`;
+}</pre>
+
+<p>尝试编辑 <code>&lt;div&gt;</code> 中的文本,并看看发生了什么事。</p>
+
+<p>{{EmbedLiveSample("Examples", '100%', 500)}}</p>
+
+<div class="blockIndicator note">
+<p>注:有关更详细的示例,请参见 <a href="https://d-toybox.com/studio/lib/input_event_viewer.html">Masayuki Nakano的InputEvent测试套件</a>。</p>
+</div>
+
+<h2 id="规范">规范</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">规范</th>
+ <th scope="col">状态</th>
+ <th scope="col" style="width: 15%;">备注</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('UI Events','#dom-inputevent-inputtype','inputType')}}</td>
+ <td>{{Spec2('UI Events')}}</td>
+ <td></td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="浏览器兼容性">浏览器兼容性</h2>
+
+<div>
+<div class="hidden">此页上的兼容性表是从结构化数据生成的。如果您想贡献数据,请访问 <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> 并向我们发送一个请求。</div>
+
+<p>{{Compat("api.InputEvent.inputType")}}</p>
+</div>
diff --git a/files/zh-cn/web/api/inputevent/iscomposing/index.html b/files/zh-cn/web/api/inputevent/iscomposing/index.html
new file mode 100644
index 0000000000..c427a7ba50
--- /dev/null
+++ b/files/zh-cn/web/api/inputevent/iscomposing/index.html
@@ -0,0 +1,96 @@
+---
+title: InputEvent.isComposing
+slug: Web/API/InputEvent/isComposing
+translation_of: Web/API/InputEvent/isComposing
+---
+<p>{{APIRef("DOM Events")}}</p>
+
+<p>The <code><strong>InputEvent.isComposing</strong></code> read-only property returns a {{jsxref("Boolean")}} value indicating if the event is fired after {{event("compositionstart")}} and before {{event("compositionend")}}.</p>
+
+<h2 id="这是一个只读属性,返回boolean类型。表示正处于输入事件的开始与结束之间,表示正在输入状态。">这是一个只读属性,返回boolean类型。表示正处于输入事件的开始与结束之间,表示正在输入状态。</h2>
+
+<h2 id="Syntax">Syntax</h2>
+
+<pre class="syntaxbox">var <em>bool</em> = <em>event</em>.isComposing;</pre>
+
+<h2 id="Example">Example</h2>
+
+<pre class="brush: js">var inputEvent = new InputEvent("syntheticInput", false);
+console.log(inputEvent.isComposing); // return false
+</pre>
+
+<h2 id="Specifications" name="Specifications">Specifications</h2>
+
+<table class="standard-table" style="height: 49px; width: 1000px;">
+ <thead>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Status</th>
+ <th scope="col">Comment</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{SpecName('DOM3 Events','#widl-InputEvent-isComposing','InputEvent.isComposing')}}</td>
+ <td>{{Spec2('DOM3 Events')}}</td>
+ <td>Initial definition.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility">Browser compatibility</h2>
+
+<p>{{ CompatibilityTable() }}</p>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Feature</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari (WebKit)</th>
+ </tr>
+ <tr>
+ <td>Basic support</td>
+ <td>{{ CompatNo() }}</td>
+ <td>{{ CompatGeckoDesktop("31.0") }}</td>
+ <td>{{ CompatNo() }}</td>
+ <td>{{ CompatNo() }}</td>
+ <td>{{ CompatNo() }}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Feature</th>
+ <th>Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>IE Phone</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>Basic support</td>
+ <td>{{ CompatNo() }}</td>
+ <td>{{ CompatGeckoMobile("31.0") }}</td>
+ <td>{{ CompatNo() }}</td>
+ <td>{{ CompatNo() }}</td>
+ <td>{{ CompatNo() }}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<h2 class="note" id="See_also">See also</h2>
+
+<ul>
+ <li>{{ event("compositionstart") }} and {{ event("compositionend")}}</li>
+ <li>{{domxref("InputEvent")}}</li>
+</ul>