<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wbex.ru/index.php?action=history&amp;feed=atom&amp;title=JavaScript_DHTML%2FMochkit%2FKeyEvents</id>
		<title>JavaScript DHTML/Mochkit/KeyEvents - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wbex.ru/index.php?action=history&amp;feed=atom&amp;title=JavaScript_DHTML%2FMochkit%2FKeyEvents"/>
		<link rel="alternate" type="text/html" href="http://wbex.ru/index.php?title=JavaScript_DHTML/Mochkit/KeyEvents&amp;action=history"/>
		<updated>2026-04-04T15:25:36Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://wbex.ru/index.php?title=JavaScript_DHTML/Mochkit/KeyEvents&amp;diff=3168&amp;oldid=prev</id>
		<title> в 10:00, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://wbex.ru/index.php?title=JavaScript_DHTML/Mochkit/KeyEvents&amp;diff=3168&amp;oldid=prev"/>
				<updated>2010-05-26T10:00:07Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 10:00, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://wbex.ru/index.php?title=JavaScript_DHTML/Mochkit/KeyEvents&amp;diff=3169&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://wbex.ru/index.php?title=JavaScript_DHTML/Mochkit/KeyEvents&amp;diff=3169&amp;oldid=prev"/>
				<updated>2010-05-26T07:25:18Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Key Events with MochiKit==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
MochiKit is dual-licensed software.  It is available under the terms of the&lt;br /&gt;
MIT License, or the Academic Free License version 2.1.  The full text of&lt;br /&gt;
each license is included below.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- Code revised from MochiKit demo code --&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot;&lt;br /&gt;
        &amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Signal Example&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
h1 {&lt;br /&gt;
    font-size: 2em;&lt;br /&gt;
    color: #4B4545;&lt;br /&gt;
    text-align: center;&lt;br /&gt;
}    &lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;MochiKit-1.4.2/lib/MochiKit/MochiKit.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
    Key Events: A Really Simple Key Handler&lt;br /&gt;
    &lt;br /&gt;
*/&lt;br /&gt;
KeyEvents = {&lt;br /&gt;
    handled: false,&lt;br /&gt;
    handleF1: function() {&lt;br /&gt;
        replaceChildNodes(&amp;quot;specialMessage&amp;quot;, &amp;quot;You invoked the special F1 handler!&amp;quot;);&lt;br /&gt;
    },&lt;br /&gt;
    handleEscape: function() {&lt;br /&gt;
        replaceChildNodes(&amp;quot;specialMessage&amp;quot;, &amp;quot;You invoked the special Escape handler!&amp;quot;);&lt;br /&gt;
    },&lt;br /&gt;
    updateModifiers: function(e) {&lt;br /&gt;
        var modifiers = e.modifier();&lt;br /&gt;
        replaceChildNodes(&amp;quot;shift&amp;quot;, modifiers.shift);&lt;br /&gt;
        replaceChildNodes(&amp;quot;ctrl&amp;quot;, modifiers.ctrl);&lt;br /&gt;
        replaceChildNodes(&amp;quot;alt&amp;quot;, modifiers.alt);&lt;br /&gt;
        replaceChildNodes(&amp;quot;meta&amp;quot;, modifiers.meta);&lt;br /&gt;
    }&lt;br /&gt;
};&lt;br /&gt;
KeyEvents.specialKeyMap = {&lt;br /&gt;
    &amp;quot;KEY_F1&amp;quot;: KeyEvents.handleF1,&lt;br /&gt;
    &amp;quot;KEY_ESCAPE&amp;quot;: KeyEvents.handleEscape&lt;br /&gt;
};&lt;br /&gt;
connect(document, &amp;quot;onkeydown&amp;quot;, &lt;br /&gt;
    function(e) {&lt;br /&gt;
        if (getElement(&amp;quot;stopBox&amp;quot;).checked == true) {&lt;br /&gt;
            e.preventDefault();&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        // We&amp;quot;re storing a handled flag to work around a Safari bug: &lt;br /&gt;
        // http://bugs.webkit.org/show_bug.cgi?id=3387&lt;br /&gt;
        if (!KeyEvents.handled) {&lt;br /&gt;
            var key = e.key();&lt;br /&gt;
            var fn = KeyEvents.specialKeyMap[key.string];&lt;br /&gt;
            if (fn) {&lt;br /&gt;
                fn();&lt;br /&gt;
            }&lt;br /&gt;
            replaceChildNodes(&amp;quot;onkeydown_code&amp;quot;, key.code);&lt;br /&gt;
            replaceChildNodes(&amp;quot;onkeydown_string&amp;quot;, key.string);&lt;br /&gt;
            KeyEvents.updateModifiers(e);&lt;br /&gt;
        }&lt;br /&gt;
        KeyEvents.handled = true;&lt;br /&gt;
    });&lt;br /&gt;
    &lt;br /&gt;
connect(document, &amp;quot;onkeyup&amp;quot;, &lt;br /&gt;
    function(e) {&lt;br /&gt;
        if (getElement(&amp;quot;stopBox&amp;quot;).checked == true) {&lt;br /&gt;
            e.preventDefault();&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        KeyEvents.handled = false;&lt;br /&gt;
        var key = e.key();&lt;br /&gt;
        replaceChildNodes(&amp;quot;onkeyup_code&amp;quot;, key.code);&lt;br /&gt;
        replaceChildNodes(&amp;quot;onkeyup_string&amp;quot;, key.string);&lt;br /&gt;
        KeyEvents.updateModifiers(e);&lt;br /&gt;
    });&lt;br /&gt;
connect(document, &amp;quot;onkeypress&amp;quot;, &lt;br /&gt;
    function(e) {&lt;br /&gt;
        if (getElement(&amp;quot;stopBox&amp;quot;).checked == true) {&lt;br /&gt;
            e.preventDefault();&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        var key = e.key();&lt;br /&gt;
        replaceChildNodes(&amp;quot;onkeypress_code&amp;quot;, key.code);&lt;br /&gt;
        replaceChildNodes(&amp;quot;onkeypress_string&amp;quot;, key.string);&lt;br /&gt;
        KeyEvents.updateModifiers(e);&lt;br /&gt;
    });&lt;br /&gt;
connect(window, &amp;quot;onload&amp;quot;,&lt;br /&gt;
    function() {        &lt;br /&gt;
        var elems = getElementsByTagAndClassName(&amp;quot;A&amp;quot;, &amp;quot;view-source&amp;quot;);&lt;br /&gt;
        var page = &amp;quot;key_events/&amp;quot;;&lt;br /&gt;
        for (var i = 0; i &amp;lt; elems.length; i++) {&lt;br /&gt;
            var elem = elems[i];&lt;br /&gt;
            var href = elem.href.split(/\//).pop();&lt;br /&gt;
            elem.target = &amp;quot;_blank&amp;quot;;&lt;br /&gt;
            elem.href = &amp;quot;../view-source/view-source.html#&amp;quot; + page + href;&lt;br /&gt;
        }&lt;br /&gt;
    });    &lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt;&lt;br /&gt;
        Key Events with MochiKit&lt;br /&gt;
    &amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;&lt;br /&gt;
        This is an example of one might implement a key listener with&lt;br /&gt;
        MochiKit&amp;amp;#8217;s Signal.&lt;br /&gt;
    &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;&lt;br /&gt;
        For a detailed description of what happens under the hood, check out&lt;br /&gt;
        &amp;lt;a href=&amp;quot;key_events.js&amp;quot; class=&amp;quot;view-source&amp;quot;&amp;gt;key_events.js&amp;lt;/a&amp;gt;.&lt;br /&gt;
    &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;&lt;br /&gt;
        View Source: [&lt;br /&gt;
            &amp;lt;a href=&amp;quot;index.html&amp;quot; class=&amp;quot;view-source&amp;quot;&amp;gt;index.html&amp;lt;/a&amp;gt; | &lt;br /&gt;
            &amp;lt;a href=&amp;quot;key_events.js&amp;quot; class=&amp;quot;view-source&amp;quot;&amp;gt;key_events.js&amp;lt;/a&amp;gt; |&lt;br /&gt;
            &amp;lt;a href=&amp;quot;key_events.css&amp;quot; class=&amp;quot;view-source&amp;quot;&amp;gt;key_events.css&amp;lt;/a&amp;gt;&lt;br /&gt;
        ]&lt;br /&gt;
    &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Check this box to test &amp;lt;a href=&amp;quot;http://mochikit.ru/doc/html/lib/MochiKit/Signal.html#fn-preventdefault&amp;quot;&amp;gt;&lt;br /&gt;
    preventDefault()&amp;lt;/a&amp;gt; in your browser:&lt;br /&gt;
    &amp;lt;input type=&amp;quot;checkbox&amp;quot; id=&amp;quot;stopBox&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;p id=&amp;quot;specialMessage&amp;quot;&amp;gt;This text is replaced with a message when you press Escape or F1.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;table&amp;gt;&lt;br /&gt;
        &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;Event&amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;Key Code&amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;Key String&amp;lt;/th&amp;gt;&lt;br /&gt;
        &amp;lt;/tr&amp;gt;&lt;br /&gt;
        &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;td&amp;gt;onkeydown&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;td id=&amp;quot;onkeydown_code&amp;quot;&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;td id=&amp;quot;onkeydown_string&amp;quot;&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
        &amp;lt;/tr&amp;gt;&lt;br /&gt;
        &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;td&amp;gt;onkeyup&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;td id=&amp;quot;onkeyup_code&amp;quot;&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;td id=&amp;quot;onkeyup_string&amp;quot;&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
        &amp;lt;/tr&amp;gt;&lt;br /&gt;
        &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;td&amp;gt;onkeypress&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;td id=&amp;quot;onkeypress_code&amp;quot;&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;td id=&amp;quot;onkeypress_string&amp;quot;&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
        &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;/table&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;h3&amp;gt;Modifiers&amp;lt;/h3&amp;gt;&lt;br /&gt;
    &amp;lt;table&amp;gt;&lt;br /&gt;
        &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;Shift&amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;Ctrl&amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;Alt (Option)&amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;Meta (Command)&amp;lt;/th&amp;gt;&lt;br /&gt;
        &amp;lt;/tr&amp;gt;&lt;br /&gt;
        &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;td id=&amp;quot;shift&amp;quot;&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;td id=&amp;quot;ctrl&amp;quot;&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;td id=&amp;quot;alt&amp;quot;&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;td id=&amp;quot;meta&amp;quot;&amp;gt;-&amp;lt;/td&amp;gt;&lt;br /&gt;
        &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;/table&amp;gt;    &lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>