如何将文本粘贴到浏览器?

时间:2011-01-26 17:55:43

标签: string browser xul paste

关注this tutorial我能够从剪贴板中检索数据。

但我不知道(在API中有什么内容)关于如何将我的字符串插入the xul browser(例如,当用户打开'edit'菜单并点击'粘贴')时。

有什么想法吗?

- 更新

有一个cmd_paste here,但如果我可以(以及如何)使用它在浏览器中粘贴,则没有任何提示。此外,browser's API可用文档也没有任何内容。

我尝试创建浏览器,设置command属性(不确定它是否存在,the API什么也没说,但它是一个不太可靠的wiki)和一个粘贴按钮:< / p>

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

<window width="400" height="300"
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

    <browser id="mybrowser" command="cmd_paste" type="content" src="http://www.google.com/" flex="1" />
    <button label="TEST PASTE" command="document.getElementById('mybrowser').doCommand();" />

</window>

按下按钮时没有任何反应(我的剪贴板上有数据,浏览器中选择了一个文本字段)。

- 在xulrunner来源

在toolkit.jar中,在content / global / editMenuOverlay.xul中有定义:

<command id="cmd_paste" oncommand="goDoCommand('cmd_paste')"/>

但是没有在那里定义“goDoCommand”方法,也没有在包含的唯一javascript文件中定义:editMenuOverlay.js

2 个答案:

答案 0 :(得分:0)

你真的需要一个“粘贴”命令吗?难道你不能使用你找到的教程从剪贴板中检索数据,并在按下过去的按钮时将其复制到当前聚焦的文本元素中吗?

答案 1 :(得分:0)

找到goDoCommand(参见问题更新)后,我发现该函数位于globalOverlay.js文件中。

所以我加入了我的Xul:

<script type="application/x-javascript" src="chrome://global/content/globalOverlay.js" />

并使用goDoCommand命令。

还不确定将这个js添加到我的Xul中是否是最好的甚至是正确的方法,但看起来还不错。