1 | <!DOCTYPE html> |
---|
2 | <!-- |
---|
3 | Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. |
---|
4 | For licensing, see LICENSE.html or http://ckeditor.com/license |
---|
5 | --> |
---|
6 | <html> |
---|
7 | <head> |
---|
8 | <title>IE7(8) contentEditable event listener bug</title> |
---|
9 | <meta charset="utf-8"> |
---|
10 | <style> |
---|
11 | .cEditable { |
---|
12 | border: 2px dashed black; |
---|
13 | } |
---|
14 | </style> |
---|
15 | </head> |
---|
16 | <body> |
---|
17 | |
---|
18 | <div id="editable" style="background: orange; width: 300px; height: 300px;"> |
---|
19 | <p>Start selection here in the orange div, hold your mouse and and move it somewhere outside.</p> |
---|
20 | <p>Under IE7(8), watch the counter going on with contentEditable=true outside of the box.</p> |
---|
21 | <p>Normal browsers stop calling mousemove when pointer leaves orange div with contentEditable=true.</p> |
---|
22 | </div> |
---|
23 | <p id="logger"> </p> |
---|
24 | |
---|
25 | <script> |
---|
26 | var div = document.getElementById( 'editable' ), |
---|
27 | logger = document.getElementById( 'logger' ), |
---|
28 | counter = 0; |
---|
29 | |
---|
30 | div[ div.addEventListener ? 'addEventListener' : 'attachEvent' ]( |
---|
31 | ( div.addEventListener ? '' : 'on' ) + 'mousemove', function() { |
---|
32 | |
---|
33 | logger.innerHTML = '"mousemove" fired: ' + ++counter + ' times.'; |
---|
34 | }); |
---|
35 | |
---|
36 | function toggleEditable() { |
---|
37 | var isEditable = div.getAttribute( 'contentEditable' ) == 'true'; |
---|
38 | |
---|
39 | if ( isEditable ) |
---|
40 | div.removeAttribute( 'contentEditable' ); |
---|
41 | else |
---|
42 | div.setAttribute( 'contentEditable', 'true' ); |
---|
43 | |
---|
44 | div.className = isEditable ? '' : 'cEditable'; |
---|
45 | } |
---|
46 | |
---|
47 | </script> |
---|
48 | |
---|
49 | <button onclick="toggleEditable()">Toggle contentEditable</button> |
---|
50 | |
---|
51 | </body> |
---|
52 | </html> |
---|