2

对于我的应用程序,我使用的是 Redactor Rails。使用form_for,我当前使用redactor的输入如下:

<%= f.text_area :content, label: "Blog Updates", :class => "redactor", :cols => 100, :rows => 100 %>

无论我在 :cols 或 :rows 中做什么,都不会改变宽度和列(即 :input_html、:cols =>'x' 等)。我还在诸如此类的帖子中看到了回复:Rails text_area size

问题1:如何更改文本区域的高度和宽度?是否可以限制它,以便在内容超过初始框大小而不是让框展开时向下滚动?

另外,如果我要连续输入一个长句子,那么该框现在会扩展到屏幕右侧,直到我按下enter进入下一行。

问题 2:如果一行太长,我可以在文本编辑器中对内容进行自动换行,以便固定宽度并且文本继续到下一行吗?

谢谢。

4

2 回答 2

4

我认为:colsand:rows不会以任何方式影响 Redactor 框,这很可悲(或者我做错了什么)。要更改高度,您可以使用 add a<div>并在 .css 文件中定义 div(请注意,您必须使用“redactor_box”)。这对我有用:

这是我的edit.html.erb

<div class="redactor_box">
    <%= f.text_area :content, placeholder: "Blog entry goes here...", :class => "redactor"%>
</div>

这是我的custom.css.scss

.redactor_box {
    width: 600px;
}

你也可以改变盒子的一些行为。在终端中,运行:

rails generate redactor:config

这将创建一个名为app\assets\redactor-rails\config.js. 现在访问 Redactor 的网站并查找文档。您可以将键:值对插入app\assets\redactor-rails\config.js文件中。

这是文件刚生成时的样子:

$(document).ready(
  function(){
  var csrf_token = $('meta[name=csrf-token]').attr('content');
  var csrf_param = $('meta[name=csrf-param]').attr('content');
  var params;
  if (csrf_param !== undefined && csrf_token !== undefined) {
    params = csrf_param + "=" + encodeURIComponent(csrf_token);
  }
  $('.redactor').redactor(
    { "imageUpload":"/redactor_rails/pictures?" + params,
      "imageGetJson":"/redactor_rails/pictures",
      "fileUpload":"/redactor_rails/documents?" + params,
      "fileGetJson":"/redactor_rails/documents",
      "path":"/assets/redactor-rails",
      "css":"style.css"
    }
  );
})

现在,只需在"css":"style.css". 例如,下面的代码将禁用框展开。

$(document).ready(
  function(){
  var csrf_token = $('meta[name=csrf-token]').attr('content');
  var csrf_param = $('meta[name=csrf-param]').attr('content');
  var params;
  if (csrf_param !== undefined && csrf_token !== undefined) {
    params = csrf_param + "=" + encodeURIComponent(csrf_token);
  }
  $('.redactor').redactor(
    { "imageUpload":"/redactor_rails/pictures?" + params,
      "imageGetJson":"/redactor_rails/pictures",
      "fileUpload":"/redactor_rails/documents?" + params,
      "fileGetJson":"/redactor_rails/documents",
      "path":"/assets/redactor-rails",
      "css":"style.css",
      "autoresize":"false"
    }
  );
});

您可以更改许多其他设置。只需转到 Redactor 网站上的文档部分。

于 2013-06-30T21:48:18.130 回答
2

尝试这个 :

在以下位置创建config.js文件app/assets/javascripts/redactor-rails/config.js

将您的代码更改为:

$(document).ready(
  function(){
  var csrf_token = $('meta[name=csrf-token]').attr('content');
  var csrf_param = $('meta[name=csrf-param]').attr('content');
  var params;
  if (csrf_param !== undefined && csrf_token !== undefined) {
    params = csrf_param + "=" + encodeURIComponent(csrf_token);
  }
  $('.redactor').redactor(
    { "imageUpload":"/redactor_rails/pictures?" + params,
      "imageGetJson":"/redactor_rails/pictures",
      "fileUpload":"/redactor_rails/documents?" + params,
      "fileGetJson":"/redactor_rails/documents",
      "path":"/assets/redactor-rails",
       "minHeight" : 200, ### => Add this line!! ( The 200 is in pixels )
      "css":"style.css"}
  );
});

重新启动您的服务器。

于 2014-08-09T14:54:16.810 回答