我正在使用ckeditor创建内联CMS。这个想法是:
使用contenteditable属性指定区域:
<div contenteditable="true">
safsdfdfsdfdfsdfsdfds
</div>
由于会话是在客户端登录时创建的,因此我写了一些知道如果客户端已登录就知道启用ckEditor和所有CMS功能的PHP。
我遇到的问题是,当没有登录时,div上的contenteditable="true"
仍允许您编辑它们而不使用WYSIWYG作为浏览器的默认行为。显然这不好。如何阻止用户编辑页面?
答案 0 :(得分:1)
您可以像这样设置div:
<div data-contenteditable="true">
有一个JavaScript(如果处于管理模式)遍历所有div(document.getElementsByTagName(“div”)),如果他们有数据contenteditable设置真正的contenteditable。
否则,如果处于管理模式
,则只允许服务器包含contenteditable答案 1 :(得分: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>