1 |
<!-- Work in progress --> |
2 |
<html> |
3 |
<head> |
4 |
<title>HTML entities</title> |
5 |
<style> |
6 |
X.non-entity { |
7 |
display: none; |
8 |
} |
9 |
</style> |
10 |
</head> |
11 |
<body> |
12 |
<noscript><p id=result class=FAIL>FAIL (not executed)</p></noscript> |
13 |
<p><button type=button onclick="stopP=true">stop</button></p> |
14 |
<p><iframe></iframe></p> |
15 |
<script> |
16 |
var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.-'; |
17 |
var stopP = false; |
18 |
|
19 |
var doc = document.getElementsByTagName ('iframe')[0].contentWindow.document; |
20 |
|
21 |
var prefix = ['']; |
22 |
p (prefix.shift ()); |
23 |
|
24 |
function p (m) { |
25 |
var v = '<table><caption>'+m+'</caption><tbody>'; |
26 |
for (var i = 0; i < chars.length; i++) { |
27 |
n = m + chars[i]; |
28 |
v += '<tr><td>&'+n+';</td><td>&'+n+';</td></tr>'; |
29 |
prefix.push (n); |
30 |
} |
31 |
v += '</tbody></table>'; |
32 |
doc.body.innerHTML = v; |
33 |
var trs = doc.getElementsByTagName ('table')[0].tBodies[0].rows; |
34 |
var trsL = trs.length; |
35 |
for (var i = 0; i < trsL; i++) { |
36 |
var tr = trs[i]; |
37 |
if (tr.firstChild.innerHTML == tr.lastChild.innerHTML) { |
38 |
tr.className = 'non-entity'; |
39 |
} |
40 |
} |
41 |
|
42 |
if (!stopP && prefix.length) { |
43 |
window.setTimeout (function () { |
44 |
p (prefix.shift ()); |
45 |
}, 1000); |
46 |
} |
47 |
} |
48 |
</script> |
49 |
</body> |
50 |
</html> |