如何将文本粘贴到浏览器?
按照本教程,我能够从剪贴板检索数据。
但我不知道(API 中也没有任何内容)如何将我的字符串插入 xul 浏览器 (例如,当用户打开“编辑”菜单并单击“粘贴”时)。
有什么想法吗?
--update
这里有一个 cmd_paste
这里,但没有提示我是否可以(以及如何)使用它粘贴到浏览器中。此外,浏览器的 API 可用文档对此一无所知。
我尝试让它工作创建一个浏览器,设置 command
属性(不确定它是否存在,API什么也没说,但它是一个不太可靠的wiki)和一个粘贴按钮:
<?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>
按下按钮时没有任何反应(剪贴板上的数据,以及在浏览器中选择的文本字段) 。
--在 toolkit.jar 内的 xulrunner 源代码
中,在 content/global/editMenuOverlay.xul 处有定义:
<command id="cmd_paste" oncommand="goDoCommand('cmd_paste')"/>
但那里没有定义“goDoCommand”方法,也没有在包含的唯一 javascript 文件中定义:editMenuOverlay.js
。
Following this tutorial I was able to retrieve data form the clipboard.
But I have no idea (nither there's something in the API) about how to insert my string into the xul browser (say, when the user open the 'edit' menu and click 'paste').
Any idea?
--update
There's a cmd_paste
here, but there's no hint if I can (and how to) use it to paste in a browser. Also the browser's API available documentation have nothing about.
I tried make it work creating a browser, setting the command
attribute (not sure if it exists, the API says nothing, but it's a wiki not much reliable) and a button to paste:
<?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>
Nothing happens when I press the button (with data on my clipboard, and a text field selected inside the browser).
--in the xulrunner source
within toolkit.jar, at content/global/editMenuOverlay.xul there's the definition:
<command id="cmd_paste" oncommand="goDoCommand('cmd_paste')"/>
but no "goDoCommand" method is defined there, nither in the only javascript file included: editMenuOverlay.js
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您真的需要“粘贴”命令吗?难道您不能使用您找到的教程从剪贴板检索数据,并在按下过去的按钮时将其复制到当前聚焦的文本元素中吗?
Do you really need a "paste" command? Couldn't you just retrieve the data from the clipboard using the tutorial you found and copy it into the currently focused text elements when the past button is pressed?
找到 goDoCommand (请参阅问题更新)后,我发现该函数位于 globalOverlay.js 文件中。
所以我添加到我的 Xul:
并使用 goDoCommand 命令。
还不确定将此 js 添加到我的 Xul 中是否是最佳甚至正确的方法,但看起来不错。
After finding the goDoCommand (see the question update) I found out that the function was in the globalOverlay.js file.
So I added to my Xul:
and used the goDoCommand command.
Not yet sure if it's the best or even correct approach to add this js to my Xul, but look likes ok.