summaryrefslogtreecommitdiff
path: root/plugins/embed_original/init.js
blob: 865491142ea31b4515bf2a3c2cae633eb1412b55 (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
function embedOriginalArticle(id) {
	try {
		const hasSandbox = "sandbox" in document.createElement("iframe");

		if (!hasSandbox) {
			alert(__("Sorry, your browser does not support sandboxed iframes."));
			return;
		}

		const query = "op=pluginhandler&plugin=embed_original&method=getUrl&id=" +
			param_escape(id);

		let c = false;

		if (isCdmMode()) {
			c = $$("div#RROW-" + id + " div[class=cdmContentInner]")[0];
		} else if (id == getActiveArticleId()) {
			c = $$("div[class=postContent]")[0];
		}

		if (c) {
			const iframe = c.parentNode.getElementsByClassName("embeddedContent")[0];

			if (iframe) {
				Element.show(c);
				c.parentNode.removeChild(iframe);

				if (isCdmMode()) {
					cdmScrollToArticleId(id, true);
				}

				return;
			}
		}

		new Ajax.Request("backend.php",	{
			parameters: query,
			onComplete: function(transport) {
				const ti = JSON.parse(transport.responseText);

				if (ti) {

					const iframe = new Element("iframe", {
						class: "embeddedContent",
						src: ti.url,
						width: (c.parentNode.offsetWidth-5)+'px',
						height: (c.parentNode.parentNode.offsetHeight-c.parentNode.firstChild.offsetHeight-5)+'px',
						style: "overflow: auto; border: none; min-height: "+(document.body.clientHeight/2)+"px;",
						sandbox: 'allow-scripts',
					});

					if (c) {
						Element.hide(c);
						c.parentNode.insertBefore(iframe,c);

						if (isCdmMode()) {
							cdmScrollToArticleId(id, true);
						}
					}
				}

			} });


	} catch (e) {
		exception_error("embedOriginalArticle", e);
	}
}