Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在浏览器中编辑基于HTML的时事通讯-“;“页面内的页面”;设计模式_Html_Ruby On Rails_Iframe_User Interface_Html Email - Fatal编程技术网

在浏览器中编辑基于HTML的时事通讯-“;“页面内的页面”;设计模式

在浏览器中编辑基于HTML的时事通讯-“;“页面内的页面”;设计模式,html,ruby-on-rails,iframe,user-interface,html-email,Html,Ruby On Rails,Iframe,User Interface,Html Email,我正在构建一个应用程序,允许用户根据预定义的模板构建自己的电子邮件时事通讯 我有一个页面显示项目名称等,以及其中列出的新闻稿。对于这一个,我使用iframe,因为它似乎是最简单的解决方案 application page iframe html template with html content 然而,现在我正在编辑页面,我开始怀疑iframe是否是这种情况的解决方案 在编辑页面上,我想显示嵌入在新闻稿模板主体中的编辑器,这样用户可以在仍然看到模板的情况下在位编辑可编

我正在构建一个应用程序,允许用户根据预定义的模板构建自己的电子邮件时事通讯

我有一个页面显示项目名称等,以及其中列出的新闻稿。对于这一个,我使用iframe,因为它似乎是最简单的解决方案

application page
    iframe
        html template with html content
然而,现在我正在编辑页面,我开始怀疑iframe是否是这种情况的解决方案

在编辑页面上,我想显示嵌入在新闻稿模板主体中的编辑器,这样用户可以在仍然看到模板的情况下在位编辑可编辑区域。此外,我希望在他们保存新版本之前向他们显示预览

因此,编辑屏幕看起来像:

application page
    html template containing the editable area
        ckeditor allowing editing the editable area
现在,如果我对可编辑视图使用iframe,那么ckeditor必须嵌入iframe中。而且,如果我提交iframe,那么应用程序页面不会刷新。此解决方案和解决方案似乎过于复杂/过于工程化

application page
    iframe
        html template containing the editable area
           ckeditor allowing editing the editable area
那么,另一个解决方案是什么呢

我正在考虑将时事通讯模板的CSS样式和正文标记内容显示在应用程序页面中。我必须确保为应用程序定义的样式是唯一的,以避免它们与时事通讯样式冲突,这可能是可行的。此外,我还可以控制模板,并能够识别要合并到页面正文中的区域

application page
    merged html template css
    html template body tag content 
        ckeditor allowing editing the editable area
这对我来说有点脆弱,因为我必须动态提取样式和主体标记内容,并且不确定它们是否会在应用程序页面中100%正确显示

我想这是一个相当普遍的模式,我想知道其他人是如何解决这个问题的,或者你会如何解决它

特别是想知道是否会有一个设计上的变化,这将简化过程和技术解决方案


我正在Rails 3.2中构建它。

我构建了与此非常相似的东西。我考虑过使用像FCK这样的WYSIWYG编辑器,但告诉它删除自己的样式或计算文本节点的渲染样式太麻烦了

相反,我在任何相关元素上使用了
contenteditable
属性

在后端,当进行更改时,iframe会不断写入服务器。您可能会使用HTML5存储来实现这一点,然后可以减少AJAX调用的频率


这样,您就可以完全控制样式及其应用方式。

在我看来,最好是手动编写html电子邮件,因为在布局方面可能出现的错误数量是惊人的,谢谢。在这种情况下,HTML模板是手工编码的,但随后对内容进行了几十次更改。因此,我只提供编辑内容的权限。