1

我有一个渐进增强的网页 - 一个脚本向页面添加了一些格式和元素。

该页面还允许内联编辑。

现在这是我的问题:在编辑模式下,渐进增强脚本完成了它的工作并添加了标记。一些标记位于可以编辑的区域,因此当用户保存页面时它会被保存,这当然不是想要的行为。

在同一页面上进行内联编辑和渐进增强工作的干净方法是什么?

4

3 回答 3

1

开始内联编辑时,您可以将内容可编辑的 div 的 id 设置为特定值,并修改渐进增强脚本中的选择器不选择此 div。(如果你有多个可编辑的 div,那么你可以设置它们的类名。)

于 2011-12-04T03:51:43.467 回答
0

您说您的渐进增强脚本添加标记以突出显示重要的内容片段,但您不想保存自动添加的标记。这是一个干净有效的解决方案:

  • 在进行任何保存之前,将某种分类添加到您需要剥离的包装器中,例如公共类或隐藏数据属性<span class="inline-highlighted-element"></span>
  • 使用保存前应消除的元素的标识符(类名、数据属性)创建一个黑名单。
  • 在您的在线编辑系统中,创建一个清理功能,并在每次用户尝试保存或更新内容时使用该黑名单过滤内容,然后它将删除您的增强脚本添加的自动标记。
  • 可能您需要在服务器端重现清理功能,以确保内容真正被正确过滤。
于 2011-12-04T03:07:35.643 回答
0

我是一个 jQuery 狂热者,所以我用 jQuery 回答。

<script>
    // before attaching your progressive enhancement
    // do this assuming this after your page loads
    $('selector-on-what-you-want-to-enhance').not('[contenteditable=true]').each(function(){
    // enhance away
    });
</script>
于 2011-12-09T23:34:42.497 回答