Browse Source

Add polyfill for browsers not supporting srcdoc

master
Simon Ser 4 years ago
parent
commit
d745f98bb7
No known key found for this signature in database GPG Key ID: FDE7BE0E88F5E48
2 changed files with 10 additions and 1 deletions
  1. +10
    -0
      plugins/base/public/assets/script.js
  2. +0
    -1
      plugins/base/public/message.html

+ 10
- 0
plugins/base/public/assets/script.js View File

@@ -1,8 +1,18 @@
var emailFrame = document.getElementById("email-frame");
if (emailFrame) {
// Resize the frame with its content
var resizeFrame = function() {
emailFrame.style.height = emailFrame.contentWindow.document.documentElement.scrollHeight + "px";
};
emailFrame.addEventListener("load", resizeFrame);
emailFrame.contentWindow.addEventListener("resize", resizeFrame);

// Polyfill in case the srcdoc attribute isn't supported
if (!emailFrame.srcdoc) {
var srcdoc = emailFrame.getAttribute("srcdoc");
var doc = emailFrame.contentWindow.document;
doc.open();
doc.write(srcdoc);
doc.close();
}
}

+ 0
- 1
plugins/base/public/message.html View File

@@ -113,7 +113,6 @@
{{if .Body}}
<p><a href="{{.Message.Uid}}/reply?part={{.PartPath}}">Reply</a></p>
{{if .IsHTML}}
<!-- TODO: add a src fallback -->
<!-- allow-same-origin is required to resize the frame with its content -->
<!-- allow-popups is required for target="_blank" links -->
<iframe id="email-frame" srcdoc="{{.Body}}" sandbox="allow-same-origin allow-popups"></iframe>


Loading…
Cancel
Save