From a479f3efe7f5108a3ca41d39dfd490e9ca221973 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Thu, 21 Mar 2013 16:36:48 +0400 Subject: add embed_original plugin --- plugins/embed_original/init.js | 69 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 plugins/embed_original/init.js (limited to 'plugins/embed_original/init.js') diff --git a/plugins/embed_original/init.js b/plugins/embed_original/init.js new file mode 100644 index 000000000..c0ae64619 --- /dev/null +++ b/plugins/embed_original/init.js @@ -0,0 +1,69 @@ +function embedOriginalArticle(id) { + try { + var hasSandbox = "sandbox" in document.createElement("iframe"); + + if (!hasSandbox) { + alert(__("Sorry, your browser does not support sandboxed iframes.")); + return; + } + + var query = "op=pluginhandler&plugin=embed_original&method=getUrl&id=" + + param_escape(id); + + var c = false; + + if (isCdmMode()) { + c = $$("div#RROW-" + id + " div[class=cdmContentInner]")[0]; + } else if (id == getActiveArticleId()) { + c = $$("div[class=postContent]")[0]; + } + + if (c) { + var iframe = c.getElementsByClassName("embeddedContent")[0]; + + if (iframe) { + Element.show(c.firstChild); + c.removeChild(iframe); + + if (isCdmMode()) { + cdmScrollToArticleId(id, true); + } + + return; + } + } + + new Ajax.Request("backend.php", { + parameters: query, + onComplete: function(transport) { + var ti = JSON.parse(transport.responseText); + + if (ti) { + + var iframe = new Element("iframe", { + class: "embeddedContent", + src: ti.url, + sandbox: 'sandbox', + }); + + if (c) { + Element.hide(c.firstChild); + + if (c.firstChild.nextSibling) + c.insertBefore(iframe, c.firstChild.nextSibling); + else + c.appendChild(iframe); + + if (isCdmMode()) { + cdmScrollToArticleId(id, true); + } + } + } + + } }); + + + } catch (e) { + exception_error("embedOriginalArticle", e); + } +} -- cgit v1.2.3 From 3873151bcb9fb24d45c5998f743507064642c62c Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Thu, 21 Mar 2013 16:39:57 +0400 Subject: minor tweaks to embed_original --- plugins/embed_original/init.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins/embed_original/init.js') diff --git a/plugins/embed_original/init.js b/plugins/embed_original/init.js index c0ae64619..517f2cd54 100644 --- a/plugins/embed_original/init.js +++ b/plugins/embed_original/init.js @@ -43,7 +43,7 @@ function embedOriginalArticle(id) { var iframe = new Element("iframe", { class: "embeddedContent", src: ti.url, - sandbox: 'sandbox', + sandbox: 'allow-scripts', }); if (c) { -- cgit v1.2.3