init.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. function embedOriginalArticle(id) {
  2. try {
  3. var hasSandbox = "sandbox" in document.createElement("iframe");
  4. if (!hasSandbox) {
  5. alert(__("Sorry, your browser does not support sandboxed iframes."));
  6. return;
  7. }
  8. var query = "op=pluginhandler&plugin=embed_original&method=getUrl&id=" +
  9. param_escape(id);
  10. var c = false;
  11. if (isCdmMode()) {
  12. c = $$("div#RROW-" + id + " div[class=cdmContentInner]")[0];
  13. } else if (id == getActiveArticleId()) {
  14. c = $$("div[class=postContent]")[0];
  15. }
  16. if (c) {
  17. var iframe = c.getElementsByClassName("embeddedContent")[0];
  18. if (iframe) {
  19. Element.show(c.firstChild);
  20. c.removeChild(iframe);
  21. if (isCdmMode()) {
  22. cdmScrollToArticleId(id, true);
  23. }
  24. return;
  25. }
  26. }
  27. new Ajax.Request("backend.php", {
  28. parameters: query,
  29. onComplete: function(transport) {
  30. var ti = JSON.parse(transport.responseText);
  31. if (ti) {
  32. var iframe = new Element("iframe", {
  33. class: "embeddedContent",
  34. src: ti.url,
  35. sandbox: 'allow-scripts',
  36. });
  37. if (c) {
  38. Element.hide(c.firstChild);
  39. if (c.firstChild.nextSibling)
  40. c.insertBefore(iframe, c.firstChild.nextSibling);
  41. else
  42. c.appendChild(iframe);
  43. if (isCdmMode()) {
  44. cdmScrollToArticleId(id, true);
  45. }
  46. }
  47. }
  48. } });
  49. } catch (e) {
  50. exception_error("embedOriginalArticle", e);
  51. }
  52. }