有没有一种方法可以在SAILS应用中使用任何Wysiwyg/HTML编辑器?我 找不到任何手册。似乎水星是 良好的节点支持,但我找不到一种适应帆的方法 任何一个。:(请指导我
好吧,现在很容易连接Tinymce(就像在http://www.tinymce.com/wiki.php/installation上所述一样容易。因此,现在另一个主要问题出现了:是否有任何node.js连接器向任何编辑器上传图像和内容?
或直接如何允许用户上传图像并将其插入邮局?
谢谢
是的!终于做到了!
终于使用了CKEditor,它起作用了!检查一下:
- 在http://ckeditor.com/download下载编辑器
- 将其放入项目的
assets
文件夹 - 将
config.filebrowserUploadUrl = '/uploader';
添加到您的ckeditor/config.js
文件 - 在控制器中添加一个操作:
upload_file:function(req,res){
var fs = require('fs'); console.log(req.files); fs.readFile(req.files.upload.path, function (err, data) { var newPath = 'assets/files/' + req.files.upload.name; fs.writeFile(newPath, data, function (err) { if (err) res.view({err: err}); html = ""; html += "<script type='text/javascript'>"; html += " var funcNum = " + req.query.CKEditorFuncNum + ";"; html += " var url = "/files/" + req.files.upload.name + "";"; html += " var message = "Uploaded file successfully";"; html += ""; html += " window.parent.CKEDITOR.tools.callFunction(funcNum, url, message);"; html += "</script>"; res.send(html); }); });
}
- 为此动作添加路线:
'/uploader' : { controller : 'post', action : 'upload_file' }
- 为上传制作一个文件夹(
assets/files
) - 最后,更改将ckeditor放入的表格:
block body script(type="text/javascript", src="/ckeditor/ckeditor.js") form(action='/posts/create', method="post", enctype="multipart/form-data") p Title input(type='text', name='title') p Body textarea(name='body', id='ck') script. CKEDITOR.replace( 'ck' ); hr input(type='submit', value='Сохранить')
(在这里的玉)
仅此而已!享受wysiwyg:)
上述答案将有效(我给了UP投票),但是如果您在网站上启用了CSRF代币,则需要做一些额外的事情(我会发表评论但是我的代表还不够高):
添加标准CSRF隐藏输入在以下形式上使用的形式:
<input type="hidden" name="_csrf" value="<%= _csrf %>" id="csrf" />
接下来,将以下行添加到第498行周围的ckeditor/ckeditor.js。
var csrf = document.getElementsByName("_csrf");
var token = csrfitems[0].defaultValue;
然后,您需要在ckeditor.js
的第499行上使用的形式上添加隐藏的输入。<input type="hidden" name="_csrf" value="' + token + '" id="csrf" />
这是整行499,只是为了在上下文中看到它:
var csrf = document.getElementsByName("_csrf");var token = csrfitems[0].defaultValue;
d.$.write(['<html dir="'+g+'" lang="'+i+'"><head><title></title></head><body style="margin: 0; overflow: hidden; background: transparent;">','<form enctype="multipart/form-data" method="POST" dir="'+g+'" lang="'+i+'" action="',CKEDITOR.tools.htmlEncode(f.action),
'"><label id="',a.labelId,'" for="',h,'" style="display:none">',
CKEDITOR.tools.htmlEncode(f.label),
'</label>
<input type="hidden" name="_csrf" value="' + token + '" id="csrf" /><input style="width:100%" id="',h,'" aria-labelledby="',a.labelId,'" type="file" name="',CKEDITOR.tools.htmlEncode(f.id||"cke_upload"),
希望这可以节省一些我必须经历的头痛。这可能不是最优雅的解决方案,但它将允许上传器现在在您的帆网站上工作。