为Firefox和Chrome禁用fckeditor复制粘贴

时间:2015-10-09 04:47:15

标签: firefox coldfusion coldfusion-9 fckeditor cfml

我有内部管理网站,仅供我们的人使用。在大多数情况下,他们使用Firefox(无论如何,这是该网站的标准)。我们使用Coldfusion 9进行开发,并且有很多<cftextarea>个标签。我似乎已经失去了与剪贴板事件的任何控制的联系。但是,他们已被禁用。我只是猜测,但似乎FF 42似乎是使用CF9 fckeditor时的罪魁祸首。我可以转换到另一个编辑器,但这是一个非常重要的任务。

我一直在研究,但找不到有关在FF中设置安全策略的任何明确说明。我需要建议。我正准备尝试将标记从<cftextarea>更改为textarea,但我知道我将遇到获取richtext函数的问题。

4 个答案:

答案 0 :(得分:2)

如果要启用粘贴功能图标,可以更改以下功能:

var FCKToolbarButton = function(A, B, C, D, E, F, G) {
console.log(A, B, C, D, E, F, G);
this.CommandName = A;
this.Label = B;
this.Tooltip = C;
this.Style = D;
this.SourceView = true; //E ? true : false;
this.ContextSensitive = false; //F ? true : false;
if (G == null) this.IconPath = FCKConfig.SkinPath + 'toolbar/' + A.toLowerCase() + '.gif';
else if (typeof(G) == 'number') this.IconPath = [FCKConfig.SkinPath + 'fck_strip.gif', 16, G];
else this.IconPath = G;
};

并更改

this.ContextSensitive = F ? true : false;

this.ContextSensitive = false;

您可以在FCKeditor / editor / js / fckeditorcode_gecko.js和FCKeditor / editor / js / fckeditorcode_ie.js中找到此功能

这不是最佳解决方案,但可行。

答案 1 :(得分:1)

此问题是由Firefox 41及更高版本中的安全行为更改引起的。

您必须修改fckeditorcode_gecko.js中的以下行。添加&#34; || FCKBrowserInfo.IsGecko&#34;在以下行中(标记为粗体)。之后,粘贴按钮始终处于活动状态,粘贴的内容将始终打开粘贴窗口(它与ckeditor使用的行为相同)。

GetNamedCommandState:function(A){try{if ((FCKBrowserInfo.IsSafari **|| FCKBrowserInfo.IsGecko**)&&FCK.EditorWindow&&A.IEquals('Paste')) return 0;

...

FCK.RedirectNamedCommands={Print:true,Paste:true};FCK.ExecuteRedirectedNamedCommand=function(A,B){switch (A){case 'Print':FCK.EditorWindow.print();break;case 'Paste':try{if (FCKBrowserInfo.IsSafari **|| FCKBrowserInfo.IsGecko**) throw '';

答案 2 :(得分:0)

这些更改是即时激活的,但Firefox有时不会重新加载已更改的Javascript文件。在这种情况下,您应该完全删除浏览器历史记录,然后重新加载编辑器。

答案 3 :(得分:0)

唯一可用的选项是转换为CKeditor并停止使用标签。但是,CKeditor在CFlayout标签下运行时出现问题。多么完整的垃圾!真正的解决方案是完全远离Coldfusion / Adob​​e。我没有建议,但我会研究。