我发现自动使用Chrome时,有时我的rails webapp中的tinymce编辑器不会出现。发生这种情况时,我必须刷新页面才能显示。 IE和Firefox没有这样的问题。有什么想法吗?
我没有使用插件并试图解决问题(例如在此http://www.tinymce.com/forum/viewtopic.php?id=16402),但没有得到任何结果。我正在使用自定义皮肤灯。
答案 0 :(得分:2)
我假设您使用的是'tinymce-rails'
。我有类似的问题,它与turbolinks有关。我解决它的方式是:
通过将<%= tinymce_assets %>
添加到应用程序布局,确保页面加载了tiny-mce资产。
在您要使用它的页面上的$(document).ready
和'page:load'
上删除并初始化tiny-mce。
function initTinyMCE() {
tinymce.remove();
tinymce.init({
selector: '<your-selector>',
skin: 'lightgray'
});
}
$(document).ready(function () {
initTinyMCE()
});
document.addEventListener('page:load', function () {
initTinyMCE()
});
这对我有用。希望它有所帮助。
答案 1 :(得分:1)
这个问题与turbolinks有关,我试图将它禁用为tinymce textarea,但它无法正常工作。最后,我为所有网站完全禁用了turbolink:
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => false %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => false %>
并在正文标记<body data-no-turbolink>
这解决了上述问题。
此外,由于禁用了turbolinks,网站的性能有所提升,特别是我没有看到任何 Flash无格式内容,这是我在应用中遇到的其他问题。
答案 2 :(得分:0)
感谢您的帮助。您的示例对我适用于PHP。
我就是这样。
tinymce.remove();
setTimeout(function () {
tinymce.init({selector: '#textarea'});
}, 2000);
我不得不添加setTimeout()方法,因为直接不起作用。
每次必须更改文本区域的值时,我都会再次调用此方法来加载组件。