如何为 document.activeElement 设置文本值?

发布于 2024-10-14 21:36:35 字数 235 浏览 2 评论 0原文

知道我的 document.activeElement 是一个输入字段(我不知道组件的确切名称,但可能是 Google 的搜索输入字段),我如何在以编程方式吗?

--update

我在页面加载后通过 javascript 从 xul 应用程序尝试它。粘贴命令工作正常,所以我知道该字段具有焦点。 (我没有放置 Xul 标签,因为它只是关于 javascript)

Knowing that my document.activeElement is an input field (I don't know exactly the name of the component, but may be the Google's search input field, for example), how can I set a text on it programmatically?

--update

I'm trying it from a xul application, via javascript after the page is loaded. A paste command works fine, so I know the field have the focus. (and I didn't put the Xul tag becouse it's just about the javascript)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(5

北笙凉宸 2024-10-21 21:36:35

请参阅 mozilla 参考。这与 document.getElementById() 类型相同

document.activeElement.value = 'new value';

See the mozilla reference. This is the same type as document.getElementById()

document.activeElement.value = 'new value';
意中人 2024-10-21 21:36:35

如果您确定它是一个输入文本字段,只需设置值:

document.activeElement.value = 'value'

If you are sure it is a input text field, just set the value:

document.activeElement.value = 'value'
原野 2024-10-21 21:36:35

在没有看到您的代码及其运行的上下文的情况下,我只能推测。但是,我的猜测是您正在从 XUL 应用程序调用 document.activeElement,这意味着 document 是 chrome 文档,而不是内容页面。在这种情况下,活动元素可能是您用来显示内容的 browseriframe 元素。

Without seeing your code and the context it is running in, I can only speculate. However, my guess is that you are calling document.activeElement from your XUL app, which means document is the chrome document, not the content page. In this case, the active element is likely to be the browser or iframe element you are using to display the content.

趴在窗边数星星i 2024-10-21 21:36:35

我认为还有一点麻烦,因为我使用的是 Xul 应用程序。 JavaScript 应该像在浏览器中一样工作,但事实并非如此。

我为使其工作所做的是(将内容放入剪贴板后):

controller.doCommand('cmd_selectAll');
controller.doCommand('cmd_paste');

I think there's a little more trouble because I'm in a Xul app. Javascript was supposed to work like in the browsers, but it didn't.

What I did to make it work was (after put the content in the clipboard):

controller.doCommand('cmd_selectAll');
controller.doCommand('cmd_paste');
离笑几人歌 2024-10-21 21:36:35

如果您希望焦点元素位于相对于给定应用程序窗口的任何位置(例如,它可能位于 元素内),请使用 document.commandDispatcher.focusedElement.value 与 document.commandDispatcher.focusedWindow.document.activeElement.value 相同。这将为您提供 cmd_paste 操作的元素。

If you want the focused element wherever it may be relative to the given application window, e.g. it may be inside a <browser> element, use document.commandDispatcher.focusedElement.value which is the same as document.commandDispatcher.focusedWindow.document.activeElement.value. This gives you the element that cmd_paste operates on.

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