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

发布于 2024-10-14 06:58:09 字数 1555 浏览 5 评论 0原文

按照本教程,我能够从剪贴板检索数据。

但我不知道(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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小情绪 2024-10-21 06:58:09

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

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?

我家小可爱 2024-10-21 06:58:09

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

所以我添加到我的 Xul:

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

并使用 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:

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

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文