Ticket #1280: test.html

File test.html, 2.0 KB (added by douglas, 11 years ago)

Test case that demonstrates the problem

Line 
1<html>
2  <body>
3    <iframe id="editable">
4      <html>
5        <body>
6          <div id="test">
7            Click to the right of this line -&gt;<p id="par">Block Element</p>
8          </div>
9        </body>
10      </html>
11    </iframe>
12    <input id="mytrigger" type="button" value="Then Click here to Save and Restore" />
13    <script type="text/javascript">
14        window.onload = function() {
15            var iframe = document.getElementById('editable');
16            var doc = iframe.contentDocument || iframe.contentWindow.document;
17
18            // An IFRAME without a source points to a blank document.  Here we'll
19            // copy the content we stored in between the IFRAME tags into that
20            // document.  It's a hack to allow us to use only one HTML file for this
21            // test.
22            doc.body.innerHTML = iframe.textContent || iframe.innerHTML;
23
24            // Marke the IFRAME as an editable document
25            if (doc.body.contentEditable) {
26                doc.body.contentEditable = true;
27            } else {
28                var mydoc = doc;
29                doc.designMode = 'On';
30            }
31
32            // A function to demonstrate the bug.
33            var myhandler = function() {
34                var selection = doc.selection || iframe.contentWindow.getSelection();
35                var range = selection.createRange ? selection.createRange() : selection.getRangeAt(0);
36                if (range.select) {
37                    range.select();
38                    return;
39                } else {
40                    selection.removeAllRanges();
41                    selection.addRange(range);
42                    doc.body.focus();
43                }
44            }
45
46            // Set up the button to perform the test code.
47            var button = document.getElementById('mytrigger');
48            if (button.addEventListener) {
49                button.addEventListener('click', myhandler, false);
50            } else {
51                button.attachEvent('onclick', myhandler);
52            }
53          }
54    </script>
55  </body>
56</html>