无法将文本粘贴到Redactor WYSIWYG编辑器中。 jQuery:$ .parseHTML不是一个函数

时间:2013-10-17 08:40:40

标签: jquery yii wysiwyg redactor

由于我在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,
        ),
    ));
?>

有人有什么想法吗?非常感谢任何帮助。

2 个答案:

答案 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,现在可以使用了!