SWT浏览器XULRUNNER 10:如何启用javascript访问系统剪贴板

时间:2012-09-25 20:00:18

标签: swt eclipse-rcp ckeditor xulrunner

我在Eclipse 3.8中使用基于XULRUNNER 10.0的SWT浏览器。

我想配置嵌入式浏览器,以便通过javascript启用对系统剪贴板的访问。

在我在嵌入式浏览器上运行的Web应用程序中,我使用CKeditor 3,我想使用复制/剪切/粘贴功能。

我不能使用JavaXPCOM接口,因为不支持XULRunner的10.0版本。

如何以编程方式甚至通过配置文件实现此目的?

1 个答案:

答案 0 :(得分:0)

您必须为xulrunner引擎设置某些首选项。

首先,您必须访问xulrunner的prefs.js文件。这可以通过以下代码段完成:

Class<?> loadClass = Activator.getDefault().getClass()
        .getClassLoader()
        .loadClass("org.eclipse.swt.browser.MozillaDelegate");
Method declaredMethod = loadClass
        .getDeclaredMethod("getProfilePath");
declaredMethod.setAccessible(true);
String profilePath = (String) declaredMethod.invoke(null);
File userPrefs = new File(profilePath + File.separator + "prefs.js"))

在此文件中,您必须设置以下键值:

capability.policy.policynames, allowclipboard
capability.policy.allowclipboard.Clipboard.cutcopy,allAccess
capability.policy.allowclipboard.Clipboard.paste,allAccess
capability.policy.allowclipboard.sites,file://

另见http://kb.mozillazine.org/Granting_JavaScript_access_to_the_clipboard

注意:仅当您的网站是本地网站时,此功能才有效。否则,您必须将域添加到capability.policy.allowclipboard.sites密钥。