init.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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.parentNode.getElementsByClassName("embeddedContent")[0];
  18. if (iframe) {
  19. Element.show(c);
  20. c.parentNode.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. width: (c.parentNode.offsetWidth-5)+'px',
  36. height: (c.parentNode.parentNode.offsetHeight-c.parentNode.firstChild.offsetHeight-5)+'px',
  37. style: "overflow: auto; border: none; min-height: "+(document.body.clientHeight/2)+"px;",
  38. sandbox: 'allow-scripts',
  39. });
  40. if (c) {
  41. Element.hide(c);
  42. c.parentNode.insertBefore(iframe,c);
  43. if (isCdmMode()) {
  44. cdmScrollToArticleId(id, true);
  45. }
  46. }
  47. }
  48. } });
  49. } catch (e) {
  50. exception_error("embedOriginalArticle", e);
  51. }
  52. }