aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/api/mouseevent/initmouseevent/index.html
blob: ffb87f8953855d848989ff436244849819336079 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
---
title: MouseEvent.initMouseEvent()
slug: Web/API/MouseEvent/initMouseEvent
translation_of: Web/API/MouseEvent/initMouseEvent
---
<p>{{APIRef("DOM Events")}}{{deprecated_header}}</p>

<p><code><strong>MouseEvent.initMouseEvent()</strong></code> 方法用以在鼠标事件创建时(一般用 {{domxref("Document.createEvent()")}}方法创建)初始化其属性的值。</p>

<p>事件初始化是在事件被{{ domxref("Document.createEvent()") }}方法创建后必需的。这个方法必须在事件被{{ domxref("EventTarget.dispatchEvent()") }}方法发送出来前调用。一旦事件被发送后,它将不再起任何作用。 </p>

<div class="note">
<p><span style="font-size: 14px; line-height: 21px;"><strong>不要再用此方法,已过时。</strong></span></p>

<p>使用特定的事件构造器来替代它,像 {{domxref("MouseEvent.MouseEvent", "MouseEvent()")}}<a href="/en-US/docs/Web/Guide/Events/Creating_and_triggering_events">创建并发送事件</a> 页面里有更多的使用信息。</p>
</div>

<h2 id="Syntax" name="Syntax">语法</h2>

<pre class="syntaxbox"><em>event</em>.initMouseEvent(<em>type</em>, <em>canBubble</em>, <em>cancelable</em>, <em>view</em>,
<em>                     detail</em>, <em>screenX</em>, <em>screenY</em>, <em>clientX</em>, <em>clientY</em>,
<em>                     ctrlKey</em>, <em>altKey</em>, <em>shiftKey</em>, <em>metaKey</em>,
<em>                     button</em>, <em>relatedTarget</em>);</pre>

<h3 id="形参">形参</h3>

<dl>
 <dt><em><code>type</code></em></dt>
 <dd>设置事件类型{{domxref("Event.type", "type")}} 的字符串,包含以下几种鼠标事件:<code>click<font face="Open Sans, Arial, sans-serif"></font></code><code>mousedown</code><code>mouseup</code><code>mouseover</code><code>mousemove</code><code>mouseout</code></dd>
 <dt><em><code>canBubble</code></em></dt>
 <dd>是否可以冒泡。取值集合见{{domxref("Event.bubbles")}}</dd>
 <dt><em><code>cancelable</code></em></dt>
 <dd>是否可以阻止事件默认行为。取值集合见{{domxref("Event.cancelable")}}</dd>
 <dt><em><code>view</code></em></dt>
 <dd>事件的AbstractView对象引用,这里其实指向{{domxref("window")}} 对象。取值集合见 {{domxref("UIEvent.view")}}</dd>
 <dt><em><code>detail</code></em></dt>
 <dd>事件的鼠标点击数量。取值集合见{{domxref("Event.detail")}}</dd>
 <dt><em><code>screenX</code></em></dt>
 <dd>事件的屏幕的x坐标。取值集合见{{domxref("MouseEvent.screenX")}}</dd>
 <dt><em><code>screenY</code></em></dt>
 <dd>事件的屏幕的y坐标。取值集合见{{domxref("MouseEvent.screenY")}}</dd>
 <dt><em><code>clientX</code></em></dt>
 <dd>事件的客户端x坐标。取值集合见{{domxref("MouseEvent.clientX")}}</dd>
 <dt><em><code>clientY</code></em></dt>
 <dd>事件的客户端y坐标。取值集合见{{domxref("MouseEvent.clientY")}}</dd>
 <dt><em><code>ctrlKey</code></em></dt>
 <dd>事件发生时 <kbd>control</kbd> 键是否被按下。取值集合见{{domxref("MouseEvent.ctrlKey")}}</dd>
 <dt><em><code>altKey</code></em></dt>
 <dd>事件发生时 <kbd>alt</kbd> 键是否被按下。取值集合见{{domxref("MouseEvent.altKey")}}</dd>
 <dt><em><code>shiftKey</code></em></dt>
 <dd>事件发生时 <kbd>shift</kbd> 键是否被按下。取值集合见{{domxref("MouseEvent.shiftKey")}}</dd>
 <dt><em><code>metaKey</code></em></dt>
 <dd>事件发生时 <kbd>meta</kbd> 键是否被按下。取值集合见{{domxref("MouseEvent.metaKey")}}</dd>
 <dt><em><code>button</code></em></dt>
 <dd>鼠标按键值 {{domxref("MouseEvent.button", "button")}}</dd>
 <dt><em><code>relatedTarget</code></em></dt>
 <dd>事件的<a href="/en/DOM/event.relatedTarget" title="en/DOM/event.relatedTarget">相关对象</a>。只在某些事件类型有用 (例如 <code>mouseover</code> ?和 <code>mouseout</code>)。其它的传null。</dd>
 <dt>
 <p> </p>

 <h2 id="Example" name="Example">?示例</h2>

 <h3 id="HTML内容">HTML内容</h3>

 <pre class="brush: html"><code>&lt;div style="background:red;width:180px;padding:10px;"&gt;
 &lt;div id="out"&gt;&lt;/div&gt;
 &lt;input type="text"&gt;
&lt;/div&gt;</code>
</pre>

 <h3 id="JavaScript内容">JavaScript内容</h3>

 <pre class="brush: js"><code>document.body.onclick = function(){
 e = arguments[0];
 var dt = e.target,stag = dt.tagName.toLowerCase();
 </code>document.getElementById(<span class="highVAL">"out"</span>).innerHTML = <span class="highVAL">stag</span>;<code>
};
var simulateClick = function(){
 var evt = document.createEvent("MouseEvents");
 evt.initMouseEvent("click", true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null);
 document.body.dispatchEvent(evt);
}
simulateClick();//Why it can not show "input" ?</code>
</pre>

 <p>这里有个在线演示</p>

 <p>{{EmbedLiveSample('Example', 200, 36)}}</p>

 <p>{{ LiveSampleLink('Example', 'Link to live demo') }}</p>
 </dt>
</dl>

<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('DOM3 Events', '#idl-interface-MouseEvent-initializers', 'MouseEvent.initMouseEvent()')}}</td>
   <td>{{Spec2('DOM3 Events')}}</td>
   <td>From {{SpecName('DOM2 Events')}}, deprecated.</td>
  </tr>
  <tr>
   <td>{{SpecName('DOM2 Events', '#Events-Event-initMouseEvent', 'MouseEvent.initMouseEvent()')}}</td>
   <td>{{Spec2('DOM2 Events')}}</td>
   <td>Initial definition.</td>
  </tr>
 </tbody>
</table>

<h2 id="Browser_compatibility" name="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</th>
  </tr>
  <tr>
   <td>Basic support</td>
   <td>{{ CompatVersionUnknown() }}</td>
   <td>{{ CompatVersionUnknown() }}</td>
   <td>{{ CompatUnknown() }}</td>
   <td>{{ CompatVersionUnknown() }}</td>
   <td>{{ CompatUnknown() }}</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 Mobile</th>
   <th>Opera Mobile</th>
   <th>Safari Mobile</th>
  </tr>
  <tr>
   <td>Basic support</td>
   <td>{{ CompatVersionUnknown() }}</td>
   <td>{{ CompatVersionUnknown() }}</td>
   <td>{{ CompatUnknown() }}</td>
   <td>{{ CompatVersionUnknown() }}</td>
   <td>{{ CompatUnknown() }}</td>
  </tr>
 </tbody>
</table>
</div>

<h2 id="参阅">参阅</h2>

<ul>
 <li>{{domxref("MouseEvent.MouseEvent()","MouseEvent()")}}构造器,更标准的创建{{domxref("MouseEvent")}}对象方法。</li>
 <li>{{domxref("Event.initEvent()")}}可以简单达到相同目的的方法。它已过时不再使用。</li>
</ul>