开发者

How to set a text value for document.activeElement?

开发者 https://www.devze.com 2023-02-07 13:43 出处:网络
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 program

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 h开发者_如何转开发ave the focus. (and I didn't put the Xul tag becouse it's just about the javascript)


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

document.activeElement.value = 'new value';


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

document.activeElement.value = 'value'


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 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');


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.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号