我目前正在使用此处https://github.com/spohlenz/tinymce-rails找到的tinymce-rails gem,我无法将拼写检查器初始化。 TinyMCE编辑器工作正常。
使用Javascript:
tinyMCE.init({
mode: "specific_textareas",
editor_selector: "tinymce",
theme: "advanced",
theme_advanced_toolbar_location: "top",
theme_advanced_toolbar_align: "left",
theme_advanced_statusbar_location: "bottom",
theme_advanced_buttons1: "bold,italic,underline,bullist,numlist",
theme_advanced_buttons3: "tablecontrols,fullscreen,spellchecker",
plugins: "table,autoresize,fullscreen,spellchecker",
width: "100%",
height: 400,
autoresize_min_height: 400,
autoresize_max_height: 800,
language:"en",
spellchecker_languages: "+English=en"
});
erb <%= f.text_area :completed, :class => "tinymce", :size => 500 %>
生成以下内容:
<body id="tinymce" class="mceContentBody " contenteditable="true" onload="window.parent.tinyMCE.get('report_completed').onLoad.dispatch();" spellcheck="false" style="overflow-y: hidden; padding-bottom: 50px;" dir="ltr">
我注意到拼写检查字段是错误的,但我不确定为什么,或者这实际上与问题是什么有关。
答案 0 :(得分:3)
可能重复:TinyMCE 4.0.5 spell check not working
根据我在其他地方发现的内容,拼写检查程序插件由Google服务提供支持 - 该服务已经停用。所以此时似乎没有集成的TinyMCE拼写检查解决方案。
但是,您可以通过执行以下操作来启用浏览器的内置拼写检查程序:
tinymce.init({
browser_spellcheck : true,
});
请务必从工具栏和插件列表中删除拼写检查程序。
答案 1 :(得分:2)
This post和this post表示,只需将其添加到插件列表中就可以了。设置语言。
这两篇帖子建议使用aspell
检查拼写,将行:spellchecker_rpc_url => "/users/spellchecker",
添加到TinyMCE配置,并编写一些自定义控制器代码。
我希望这些链接可以帮助你。
答案 2 :(得分:1)
我已经设法轻松地进行了类型检查工作,只需将其添加到我的config/tinymce.yml
browser_spellcheck:
- true
答案 3 :(得分:0)
我最终使用@James Chevalier的links之一中的建议,并按照TinyMCE v4 docs来写下:
# config/routes.rb
post 'tinymce/spellcheck'
# app/controllers/tinymce_controller.rb
class TinymceController < ApplicationController
skip_forgery_protection
respond_to :json
def spellcheck
suggestions = check_spelling_new(
spellcheck_params[:text],
spellcheck_params[:lang]
)
render json: {words: suggestions}
end
private
def spellcheck_params
params.permit(:method, :lang, :text)
end
def check_spelling_new(text, lang)
suggestions = {}
spell_check_response = `echo "#{text}" | aspell -a -l #{lang}`
if spell_check_response.present?
spelling_errors = spell_check_response.split(' ').slice(1..-1)
spelling_errors.length.times do |i|
spelling_errors[i].strip!
if spelling_errors[i].to_s.start_with?('&')
match_data = spelling_errors[i + 1]
suggestion_count = spelling_errors[i + 2].to_i
suggestions[match_data] ||= []
suggestion_count.times do |k|
suggestions[match_data] << spelling_errors[i + k + 4].gsub(',', '')
end
end
end
end
suggestions
end
end
// tinymce.js
tinymce.init({
...,
spellchecker_rpc_url: '.../tinymce/spellcheck'
});
您必须安装aspell和必需的词典。
我不建议在新项目中这样做,@ wloescher和@Ruby Racer会说。我只是对必须支持它的旧项目执行了此操作。