blob: a2e539bef7c612634f31960378c0e794662c7658 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
<!doctype html>
<html>
<script type="application/javascript">
var img;
var audio;
var iframe;
addEventListener("message", function(e) {
mess = JSON.parse(e.data);
if ("img" in mess)
img.src = mess.img;
else if ("audio" in mess)
audio.src = mess.audio
else if ("iframe" in mess)
iframe.src = mess.iframe;
else if ("xhr" in mess) {
let xhr = new XMLHttpRequest();
xhr.onerror = function() {
sendItUp({ didError: true });
}
xhr.onload = function() {
sendItUp({ text: xhr.responseText });
}
try {
xhr.open("GET", mess.xhr);
xhr.send();
}
catch (ex) {
sendItUp({ didThrow: true });
}
}
}, false);
function sendItUp(obj) {
window.parent.postMessage(JSON.stringify(obj), "*");
}
function audioNotifyParent(e) {
sendItUp({ type: e.type });
}
function imgNotifyParent(e) {
sendItUp({ type: e.type,
width: e.target.width,
height: e.target.height });
}
function iframeNotifyParent(e) {
res = { type: e.type };
try {
res.text = e.target.contentDocument.getElementsByTagName("p")[0].textContent;
} catch (ex) {}
try {
res.imgWidth = e.target.contentDocument.getElementById("img").width;
} catch (ex) {}
sendItUp(res);
}
onload = function() {
img = document.getElementById('img');
img.onerror = img.onload = imgNotifyParent;
iframe = document.getElementById('iframe');
iframe.onerror = iframe.onload = iframeNotifyParent;
audio = document.getElementById('audio');
audio.onerror = audio.onloadeddata = audioNotifyParent;
}
</script>
<body>
<img id=img>
<audio id=audio>
<iframe id=iframe></iframe>
</html>
|