由于我在javascript和jquery方面缺乏知识,我无法用Redactor解决这个看似简单的问题。
问题:我无法将任何文本粘贴到我的编辑器WYSIWYG编辑器中(使用ctrl v,也不能使用鼠标右键)。
当我尝试将文本粘贴到编辑器中时,我的firebug控制台向我显示了js错误:
TypeError: $.parseHTML is not a function
var $html = $('<div>').append($.parseHTML(html));
所以我认为jquery肯定有问题,因为jquery包含$.parseHTML
函数。为了确保我检查了jquery和jquery.ui是否已导入并且我正在使用最新版本,这似乎都是这种情况。
编辑:这是导入js文件的<head>
中的html片段。也许包含这些的顺序导致问题?
<script src="/assets/8cf5dd34/jquery.js" type="text/javascript">
<script src="/assets/b52d4639/redactor.js" type="text/javascript">
<script src="/assets/b52d4639/lang/nl.js" type="text/javascript">
<script src="/assets/8cf5dd34/jui/js/jquery-ui.min.js" type="text/javascript">
Here is a example of the editor if you want to check it out.
顺便说一句:我正在使用Yii框架。使用编辑器的代码如下:
<?php echo $form->textArea($model,'text',array('class'=>'redactor' )); ?>
<?php
$this->widget('ImperaviRedactorWidget', array(
// The textarea selector
'selector' => '.redactor',
// Some options, see http://imperavi.com/redactor/docs/
'options' => array(
'lang'=>'nl',
'buttons'=>array('formatting', '|', 'bold', 'italic', 'deleted', '|', 'alignment', '|', 'unorderedlist', 'orderedlist', 'outdent', 'indent', '|', 'horizontalrule', '|', 'table', 'link', 'image', '|', 'copy', 'paste'),
'shortcuts'=>true,
),
));
?>
有人有什么想法吗?非常感谢任何帮助。
答案 0 :(得分:7)
Redactor需要jQuery 1.8或更高版本(我使用1.7.2并且在我更新jQuery之前得到了与你相同的错误)。你可以输入$ .fn.jquery来查询(ha!)你的版本;在浏览器的控制台上。
如果您使用的是rails,那意味着拥有2.1或更多的jquery-rails gem。我现在在我的Gemfile中有这个:
gem 'jquery-rails', '2.1.4'
省略version参数将导致jQuery 1.7.2而不是最新版本(至少,这就是发生在我身上的事情)。
答案 1 :(得分:0)
我收到了相同的错误消息,因为我使用旧版本的框架。我将我的框架更改为1.1.14,现在可以使用了!