【问题标题】:How to set a text value for document.activeElement?如何为 document.activeElement 设置文本值?
【发布时间】:2011-01-31 17:26:00
【问题描述】:

知道我的document.activeElement 是一个输入字段(我不确切知道组件的名称,但可能是谷歌的搜索输入字段,例如),我如何以编程方式在其上设置文本?

--更新

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

【问题讨论】:

  • 使用 document.activeElement.value 的答案应该有效 - 查看jsfiddle.net/FEKZj。如果这在特定情况下对您不起作用,则可能还有其他事情发生。您能否将所有代码发布到您遇到问题的地方?

标签: javascript html input xul


【解决方案1】:

请参阅mozilla reference。这和document.getElementById()是同一类型

document.activeElement.value = 'new value';

【讨论】:

  • @Tom Brito - 你是想通过控制台还是什么?它通过 chrome 中的控制台为我工作。
  • 来自 xul 应用程序,在页面加载后通过 javascript。粘贴命令可以正常工作,所以我知道该字段具有焦点。
【解决方案2】:

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

document.activeElement.value = 'value'

【讨论】:

  • @Tom Brito 不,它没有,因为谷歌用它的文本框做了奇怪的 AJAX 东西。试试 SO 搜索框。
  • @lonesomeday 它也没有用。即使我们让它在这里工作,是否有办法让它在任何网站的任何输入字段中工作?
  • 当然,使用 jQuery 并执行: $(":input").val('value for each input field');
  • 没有成功。我认为还有一点麻烦,因为我在 Xul 应用程序中。 Javascript 应该像在浏览器中一样工作,但事实并非如此。
【解决方案3】:

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

【讨论】:

  • 我在窗口元素中使用了浏览器元素。 IMO,如果我的活动元素始终是浏览器,则应将其视为 Xulrunner 中的错误。但我想我无法确定它是什么元素。
  • 这不是错误。您正在请求文档的 activeElement 。您的文档包含一个 xul:browser。如果您想要浏览器中的活动元素,请使用浏览器上的 contentDocument 属性,并访问它的 activeElement。 (developer.mozilla.org/en/XUL/browser#p-contentDocument)
  • @sdwilsh:我得到了Error: document.activeElement.contentDocument is undefined,看起来我的activeElement是别的东西..但我在窗口上只有一个浏览器元素(后来打算添加更多东西,所以我需要浏览器元素而不是使用窗口本身来加载页面)
  • 另外,使用@Tom Brito 符号,所以评论将出现在我的摘要中.. :)
  • @Tom Brito document.getElementById("browser-id").contentDocument.activeElement 怎么样?
【解决方案4】:

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

我所做的是(将内容放入剪贴板后):

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

【讨论】:

    【解决方案5】:

    如果您希望获得焦点的元素可能与给定的应用程序窗口相关,例如它可能在 <browser> 元素内,使用与 document.commandDispatcher.focusedWindow.document.activeElement.value 相同的 document.commandDispatcher.focusedElement.value。这为您提供了 cmd_paste 操作的元素。

    【讨论】:

    • 我尝试将这个value 设置为属性和属性,但这里什么也没发生。我不知道粘贴如何使用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-05
    • 2015-08-05
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    相关资源
    最近更新 更多