Pracuje nad zrobienie mailboxa i nie jestem pewien czy zrobilem to we wlasciwy sposob... tzn chyba nie do konca, bo mam minimum 2 problemy
Maile otwieram w modalu, a tresc laduje do summernote w iframe
<script type="text/javascript"> $.ajax({ url: 'json/load-email', dataType: 'json', data: datac, type: 'POST', success: function(msg) { [...] $('#showmsg').find('.inbox-view').html('<iframe id="showmsgiframe" style="width: 100%;height: 300px;border: 0px;" frameborder="0" marginheight="0" marginwidth="0" width="100%"></iframe>'); $(function() { var $frame = $('#showmsgiframe'); setTimeout( function() { var doc = $frame[0].contentWindow.document; var $body = $('body',doc); if (msg['mail']['body']['html'] != '') { $body.html(msg['mail']['body']['html']); } else if (msg['mail']['body']['plain'] != '') $body.html(msg['mail']['body']['plain']); }, 1 ); }); [...] }[...] </script>
<script type="text/javascript"> [...] $('#sendmsg').find('#message').summernote('code','<script type="text/template" id="iframeContent"><!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Inner</title></head><body contenteditable="true" style="margin: 0px; padding: 0px;"><blockquote style="width: 100%;height: 100%; padding: 0px;margin: 0px;"><br><br><small>----- Original Message -----<br><strong>From:</strong> '+mailfrom+'<br><strong>Sent:</strong> '+emaildate+'<br><strong>To:</strong> '+emailset+'<br><strong>Subject:</strong> '+mailsubject+'<br><br><br>'+cont+'</small></blockquote></body></html></script><iframe id="ifrm" style="width: 100%;height: 100%;border: 0px;" frameborder="0" scrolling="yes"></iframe>'); [...] var iframe = document.getElementById( 'ifrm' ); var content = document.getElementById("iframeContent").innerHTML; var frameDoc = iframe.document; if (iframe.contentWindow) { frameDoc = iframe.contentWindow.document; } frameDoc.open(); frameDoc.writeln(content); frameDoc.close(); </script>
<script type="text/javascript"> [...] $('#sendmsg').find('#script').html('<script type="text/template" id="iframeContent"><!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Inner</title></head><body contenteditable="true" style="margin: 0px; padding: 0px;"><br><br><small>----- Original Message -----<br><strong>From:</strong> '+mailfrom+'<br><strong>Sent:</strong> '+emaildate+'<br><strong>To:</strong> '+emailset+'<br><strong>Subject:</strong> '+mailsubject+'<br><br><br>'+cont+'</small></body></html></script>'); $('#sendmsg').find('#message').summernote('code','<iframe id="ifrm" style="width: 100%;height: 100%;border: 0px;" frameborder="0" scrolling="yes"></iframe>'); [...] </script>
Pierwsze pytanie - czemu iframe skoro tyle z nim problemów? Nie lepiej zrobić to wewnątrz aplikacji?
O ile jeszcze sama treść maila może być bezpieczniej w iframe (i mniej problemów z ostylowaniem). O tyle formularz tworzenia nowego maila spokojnie może być wewnątrz strony w której ten mailbox jest uruchomiony.
Moze i byloby prosciej, ale wlasnie rozchodzi sie o kwestie bezpieczenstwa, wiec nie jestem pewien czy ladowanie zew. tresci (nawet po przefiltrowaniu) to dobry pomysl.
Sprawdzalem inne mailboxy tj. gmail, hotmail i one tez przechowuja tresc w iframe.
W zasadzie wszystko teraz smiga ok, problem tylko z tym summernote i toolbarem. Moglbym zrobic wlasny toolbar, ale jestem pewien ze musi byc jakies rozwiazanie.
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)