我在 Eclipse 3.8 中使用基于 XULRUNNER 10.0 的 SWT 浏览器。
我想配置嵌入式浏览器以启用通过 javascript 访问系统剪贴板。
在嵌入式浏览器上运行的 Web 应用程序中,我使用 CKeditor 3,并且我想使用复制/剪切/粘贴功能。
我不能使用 JavaXPCOM 接口,因为不支持 XULRunner 10.0 版。
我怎样才能以编程方式甚至通过配置文件来实现这一点?
我在 Eclipse 3.8 中使用基于 XULRUNNER 10.0 的 SWT 浏览器。
我想配置嵌入式浏览器以启用通过 javascript 访问系统剪贴板。
在嵌入式浏览器上运行的 Web 应用程序中,我使用 CKeditor 3,并且我想使用复制/剪切/粘贴功能。
我不能使用 JavaXPCOM 接口,因为不支持 XULRunner 10.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
密钥中。