0

我正在使用 ckeditor 创建一个内联 CMS。这个想法是:

  • 客户登录管理区
  • 登录众生会话
  • 客户被定向到他们网站上的页面,他们可以在其中编辑预定义区域

区域由 contenteditable 属性指定:

<div contenteditable="true">
  safsdfdfsdfdfsdfsdfds
</div>

由于在客户端登录时会创建会话,因此我编写了一些 PHP,它知道在客户端登录时启用 ckEditor 和所有 CMS 功能。

我遇到的问题是,当未登录时,contenteditable="true"在 div 上仍然允许您在没有 WYSIWYG 作为浏览器默认行为的情况下编辑它们。显然,这并不好。如何阻止用户编辑页面?

4

2 回答 2

1

你可以像这样设置div:

<div data-contenteditable="true">

并让 JavaScript(如果在管理模式下)遍历所有 div(document.getElementsByTagName("div")),如果它们有 data-contenteditable,则设置真正的 contenteditable。

否则让服务器仅在管理员模式下包含 contenteditable

于 2013-09-24T19:58:30.847 回答
0

在 PHP 中:

首先创建一个函数,如果用户登录则返回 true,然后为每个可编辑区域(在您的视图中)创建:

<div<?php if (your_login_check_function()) echo ' contenteditable="true"'; ?>>Lorem ipsum</div>

这有点乏味,但它应该工作。

或者在 jQuery 中(由Moritz提议):

data-contenteditable="true"添加到您的可编辑节点,然后在用户登录时将脚本添加到页面末尾:

<script>$('[data-contenteditable]').attr('contenteditable', true);</script>
于 2013-09-24T20:11:25.313 回答