|
1 | 1 | <!DOCTYPE html>
|
2 |
| -<html lang=en> |
3 |
| -<title>Feature tests for DnD interfaces</title> |
4 |
| -<meta name="viewport" content="width=device-width"> |
5 |
| -<style> |
6 |
| - div { |
7 |
| - margin: 0em; |
8 |
| - padding: 2em; |
9 |
| - } |
10 |
| - #source { |
11 |
| - color: blue; |
12 |
| - border: 1px solid black; |
13 |
| - } |
14 |
| - #target { |
15 |
| - border: 1px solid black; |
16 |
| - } |
17 |
| -</style> |
18 |
| -<script> |
19 |
| -function check_DragEvents() { |
20 |
| - // Check for support of the Drag event types |
21 |
| - var events = ["ondrag", |
22 |
| - "ondragstart", |
23 |
| - "ondragend", |
24 |
| - "ondragover", |
25 |
| - "ondragenter", |
26 |
| - "ondragleave", |
27 |
| - "ondragexit", |
28 |
| - "ondrop"]; |
| 2 | +<html lang="en"> |
| 3 | + <head> |
| 4 | + <title>Feature tests for DnD interfaces</title> |
| 5 | + <meta name="viewport" content="width=device-width" /> |
| 6 | + <style> |
| 7 | + div { |
| 8 | + margin: 0em; |
| 9 | + padding: 2em; |
| 10 | + } |
| 11 | + #source { |
| 12 | + color: blue; |
| 13 | + border: 1px solid black; |
| 14 | + } |
| 15 | + #target { |
| 16 | + border: 1px solid black; |
| 17 | + } |
| 18 | + </style> |
| 19 | + <script> |
| 20 | + function check_DragEvents() { |
| 21 | + // Check for support of the Drag event types |
| 22 | + var events = [ |
| 23 | + "ondrag", |
| 24 | + "ondragstart", |
| 25 | + "ondragend", |
| 26 | + "ondragover", |
| 27 | + "ondragenter", |
| 28 | + "ondragleave", |
| 29 | + "ondragexit", |
| 30 | + "ondrop", |
| 31 | + ]; |
29 | 32 |
|
30 |
| - console.log("Drag Event Types..."); |
31 |
| - |
32 |
| - for (var i=0; i < events.length; i++) { |
33 |
| - var supported = events[i] in window; |
34 |
| - console.log("... " + events[i] + " = " + (supported ? "Yes" : "No")); |
35 |
| - } |
36 |
| -} |
37 |
| -function check_DataTransfer(dt) { |
38 |
| - // Check the DataTransfer object's methods and properties |
39 |
| - var properties = ["dropEffect", |
40 |
| - "effectAllowed", |
41 |
| - "types", |
42 |
| - "files", |
43 |
| - "items"]; |
44 |
| - var methods = ["setDragImage", |
45 |
| - "getData", |
46 |
| - "setData", |
47 |
| - "clearData"]; |
| 33 | + console.log("Drag Event Types..."); |
48 | 34 |
|
49 |
| - console.log("DataTransfer ... " + dt); |
50 |
| - |
51 |
| - for (var i=0; i < properties.length; i++) { |
52 |
| - var supported = properties[i] in dt; |
53 |
| - console.log("... dataTransfer." + properties[i] + " = " + (supported ? "Yes" : "No")); |
54 |
| - } |
55 |
| - for (var i=0; i < methods.length; i++) { |
56 |
| - var supported = typeof dt[methods[i]] == "function"; |
57 |
| - console.log("... dataTransfer." + methods[i] + "() = " + (supported ? "Yes" : "No")); |
58 |
| - } |
59 |
| -} |
60 |
| -function check_DataTransferItem(dti) { |
61 |
| - // Check the DataTransferItem object's methods and properties |
62 |
| - var properties = ["kind", |
63 |
| - "type"]; |
64 |
| - var methods = ["getAsFile", |
65 |
| - "getAsString"]; |
| 35 | + for (var i = 0; i < events.length; i++) { |
| 36 | + var supported = events[i] in window; |
| 37 | + console.log("... " + events[i] + " = " + (supported ? "Yes" : "No")); |
| 38 | + } |
| 39 | + } |
| 40 | + function check_DataTransfer(dt) { |
| 41 | + // Check the DataTransfer object's methods and properties |
| 42 | + var properties = [ |
| 43 | + "dropEffect", |
| 44 | + "effectAllowed", |
| 45 | + "types", |
| 46 | + "files", |
| 47 | + "items", |
| 48 | + ]; |
| 49 | + var methods = ["setDragImage", "getData", "setData", "clearData"]; |
66 | 50 |
|
67 |
| - console.log("DataTransferItem ... " + dti); |
| 51 | + console.log("DataTransfer ... " + dt); |
68 | 52 |
|
69 |
| - for (var i=0; i < properties.length; i++) { |
70 |
| - if (dti === undefined) { |
71 |
| - console.log("... items." + properties[i] + " = undefined"); |
72 |
| - } else { |
73 |
| - var supported = properties[i] in dti; |
74 |
| - console.log("... items." + properties[i] + " = " + (supported ? "Yes" : "No")); |
75 |
| - } |
76 |
| - } |
77 |
| - for (var i=0; i < methods.length; i++) { |
78 |
| - if (dti === undefined) { |
79 |
| - console.log("... items." + methods[i] + "() = undefined"); |
80 |
| - } else { |
81 |
| - var supported = typeof dti[methods[i]] == "function"; |
82 |
| - console.log("... items." + methods[i] + "() = " + (supported ? "Yes" : "No")); |
83 |
| - } |
84 |
| - } |
85 |
| -} |
86 |
| -function check_DataTransferItemList(dtil) { |
87 |
| - // Check the DataTransferItemList object's methods and properties |
88 |
| - var properties = ["length"]; |
89 |
| - var methods = ["add", |
90 |
| - "remove", |
91 |
| - "clear"]; |
| 53 | + for (var i = 0; i < properties.length; i++) { |
| 54 | + var supported = properties[i] in dt; |
| 55 | + console.log( |
| 56 | + "... dataTransfer." + |
| 57 | + properties[i] + |
| 58 | + " = " + |
| 59 | + (supported ? "Yes" : "No") |
| 60 | + ); |
| 61 | + } |
| 62 | + for (var i = 0; i < methods.length; i++) { |
| 63 | + var supported = typeof dt[methods[i]] == "function"; |
| 64 | + console.log( |
| 65 | + "... dataTransfer." + |
| 66 | + methods[i] + |
| 67 | + "() = " + |
| 68 | + (supported ? "Yes" : "No") |
| 69 | + ); |
| 70 | + } |
| 71 | + } |
| 72 | + function check_DataTransferItem(dti) { |
| 73 | + // Check the DataTransferItem object's methods and properties |
| 74 | + var properties = ["kind", "type"]; |
| 75 | + var methods = ["getAsFile", "getAsString"]; |
92 | 76 |
|
93 |
| - console.log("DataTransferItemList ... " + dtil); |
| 77 | + console.log("DataTransferItem ... " + dti); |
94 | 78 |
|
95 |
| - for (var i=0; i < properties.length; i++) { |
96 |
| - if (dtil === undefined) { |
97 |
| - console.log("... items." + properties[i] + " = undefined"); |
98 |
| - } else { |
99 |
| - var supported = properties[i] in dtil; |
100 |
| - console.log("... items." + properties[i] + " = " + (supported ? "Yes" : "No")); |
101 |
| - } |
102 |
| - } |
103 |
| - for (var i=0; i < methods.length; i++) { |
104 |
| - if (dtil === undefined) { |
105 |
| - console.log("... items." + methods[i] + "() = undefined"); |
106 |
| - } else { |
107 |
| - var supported = typeof dtil[methods[i]] == "function"; |
108 |
| - console.log("... items." + methods[i] + "() = " + (supported ? "Yes" : "No")); |
109 |
| - } |
110 |
| - } |
111 |
| -} |
112 |
| -function dragstart_handler(ev) { |
113 |
| - ev.dataTransfer.dropEffect = "move"; |
114 |
| - check_DragEvents(); |
115 |
| - var dt = ev.dataTransfer; |
116 |
| - if (dt === undefined) { |
117 |
| - console.log("DataTransfer is NOT supported."); |
118 |
| - } else { |
119 |
| - // Make sure there is at least one item |
120 |
| - dt.setData("text/plain", "Move this."); |
121 |
| - check_DataTransfer(dt); |
122 |
| - } |
123 |
| -} |
124 |
| -function dragover_handler(ev) { |
125 |
| - ev.dataTransfer.dropEffect = "move"; |
126 |
| - ev.preventDefault(); |
127 |
| -} |
128 |
| -function drop_handler(ev) { |
129 |
| - if (ev.dataTransfer === undefined) { |
130 |
| - console.log("DataTransferItem NOT supported."); |
131 |
| - console.log("DataTransferItemList NOT supported."); |
132 |
| - } else { |
133 |
| - var dti = ev.dataTransfer.items; |
134 |
| - if (dti === undefined) { |
135 |
| - console.log("DataTransferItem NOT supported."); |
136 |
| - console.log("DataTransferItemList NOT supported."); |
137 |
| - } else { |
138 |
| - check_DataTransferItem(dti[0]); |
139 |
| - check_DataTransferItemList(dti); |
140 |
| - } |
141 |
| - } |
142 |
| -} |
143 |
| -</script> |
144 |
| -<body> |
145 |
| -<h1>Log support of DnD objects' methods and properties</h1> |
146 |
| - <div> |
147 |
| - <p id="source" ondragstart="dragstart_handler(event);" draggable="true"> |
148 |
| - Select this element, drag it to the Drop Zone and then release the mouse. The console log will contain data about the DnD interfaces supported.</p> |
149 |
| - </div> |
150 |
| - <div id="target" ondrop="drop_handler(event);" ondragover="dragover_handler(event);">Drop Zone</div> |
151 |
| -</body> |
| 79 | + for (var i = 0; i < properties.length; i++) { |
| 80 | + if (dti === undefined) { |
| 81 | + console.log("... items." + properties[i] + " = undefined"); |
| 82 | + } else { |
| 83 | + var supported = properties[i] in dti; |
| 84 | + console.log( |
| 85 | + "... items." + properties[i] + " = " + (supported ? "Yes" : "No") |
| 86 | + ); |
| 87 | + } |
| 88 | + } |
| 89 | + for (var i = 0; i < methods.length; i++) { |
| 90 | + if (dti === undefined) { |
| 91 | + console.log("... items." + methods[i] + "() = undefined"); |
| 92 | + } else { |
| 93 | + var supported = typeof dti[methods[i]] == "function"; |
| 94 | + console.log( |
| 95 | + "... items." + methods[i] + "() = " + (supported ? "Yes" : "No") |
| 96 | + ); |
| 97 | + } |
| 98 | + } |
| 99 | + } |
| 100 | + function check_DataTransferItemList(dtil) { |
| 101 | + // Check the DataTransferItemList object's methods and properties |
| 102 | + var properties = ["length"]; |
| 103 | + var methods = ["add", "remove", "clear"]; |
| 104 | + |
| 105 | + console.log("DataTransferItemList ... " + dtil); |
| 106 | + |
| 107 | + for (var i = 0; i < properties.length; i++) { |
| 108 | + if (dtil === undefined) { |
| 109 | + console.log("... items." + properties[i] + " = undefined"); |
| 110 | + } else { |
| 111 | + var supported = properties[i] in dtil; |
| 112 | + console.log( |
| 113 | + "... items." + properties[i] + " = " + (supported ? "Yes" : "No") |
| 114 | + ); |
| 115 | + } |
| 116 | + } |
| 117 | + for (var i = 0; i < methods.length; i++) { |
| 118 | + if (dtil === undefined) { |
| 119 | + console.log("... items." + methods[i] + "() = undefined"); |
| 120 | + } else { |
| 121 | + var supported = typeof dtil[methods[i]] == "function"; |
| 122 | + console.log( |
| 123 | + "... items." + methods[i] + "() = " + (supported ? "Yes" : "No") |
| 124 | + ); |
| 125 | + } |
| 126 | + } |
| 127 | + } |
| 128 | + function dragstart_handler(ev) { |
| 129 | + ev.dataTransfer.dropEffect = "move"; |
| 130 | + check_DragEvents(); |
| 131 | + var dt = ev.dataTransfer; |
| 132 | + if (dt === undefined) { |
| 133 | + console.log("DataTransfer is NOT supported."); |
| 134 | + } else { |
| 135 | + // Make sure there is at least one item |
| 136 | + dt.setData("text/plain", "Move this."); |
| 137 | + check_DataTransfer(dt); |
| 138 | + } |
| 139 | + } |
| 140 | + function dragover_handler(ev) { |
| 141 | + ev.dataTransfer.dropEffect = "move"; |
| 142 | + ev.preventDefault(); |
| 143 | + } |
| 144 | + function drop_handler(ev) { |
| 145 | + if (ev.dataTransfer === undefined) { |
| 146 | + console.log("DataTransferItem NOT supported."); |
| 147 | + console.log("DataTransferItemList NOT supported."); |
| 148 | + } else { |
| 149 | + var dti = ev.dataTransfer.items; |
| 150 | + if (dti === undefined) { |
| 151 | + console.log("DataTransferItem NOT supported."); |
| 152 | + console.log("DataTransferItemList NOT supported."); |
| 153 | + } else { |
| 154 | + check_DataTransferItem(dti[0]); |
| 155 | + check_DataTransferItemList(dti); |
| 156 | + } |
| 157 | + } |
| 158 | + } |
| 159 | + </script> |
| 160 | + </head> |
| 161 | + <body> |
| 162 | + <h1>Log support of DnD objects' methods and properties</h1> |
| 163 | + <div> |
| 164 | + <p id="source" ondragstart="dragstart_handler(event);" draggable="true"> |
| 165 | + Select this element, drag it to the Drop Zone and then release the |
| 166 | + mouse. The console log will contain data about the DnD interfaces |
| 167 | + supported. |
| 168 | + </p> |
| 169 | + </div> |
| 170 | + <div |
| 171 | + id="target" |
| 172 | + ondrop="drop_handler(event);" |
| 173 | + ondragover="dragover_handler(event);"> |
| 174 | + Drop Zone |
| 175 | + </div> |
| 176 | + </body> |
152 | 177 | </html>
|
0 commit comments