4

由于我在 javascript 和 jquery 方面缺乏知识,我无法用 Redactor 解决这个看似简单的问题。

问题:我无法将任何文本粘贴到我的编辑器所见即所得编辑器中(使用 ctrl v 或使用鼠标右键)。

当我尝试将文本粘贴到编辑器中时,我的 firebug 控制台向我显示 js 错误:

TypeError: $.parseHTML is not a function
    var $html = $('<div>').append($.parseHTML(html));

所以我认为jquery一定有问题,因为jquery包含该$.parseHTML功能。可以肯定的是,我检查了 jquery 和 jquery.ui 是否已导入,并且我使用的是最新版本,这一切似乎都是如此。

编辑:这是我<head>导入 js 文件的部分 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">

如果您想查看它,这是编辑器的示例。

顺便说一句:我正在使用 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,
        ),
    ));
?>

有人有什么想法吗?任何帮助是极大的赞赏。

4

2 回答 2

7

Redactor 需要 jQuery 1.8 或更高版本(我使用的是 1.7.2 并且在更新 jQuery 之前遇到了与您相同的错误)。您可以通过键入 $.fn.jquery 来查询(哈哈!)您的版本;在浏览器的控制台上。

如果您使用的是 rails,则意味着拥有 2.1 或更高版本的 jquery-rails gem。我现在在我的 Gemfile 中有这个:

gem 'jquery-rails', '2.1.4'

省略版本参数将导致 jQuery 1.7.2 而不是最新的(至少,这就是发生在我身上的事情)。

于 2013-10-21T21:00:31.823 回答
0

我收到了同样的错误信息,因为我使用的是旧版本的框架。我将我的框架更改为 1.1.14,它现在可以工作了!

于 2013-10-28T11:16:22.100 回答