2011-01-31 2 views
2

document.activeElement이 입력 필드라는 사실을 알고 있습니다 (예를 들어 구성 요소의 이름은 정확하게 모르지만 Google의 검색 입력 필드 일 수 있음). 프로그래밍 방식으로 텍스트를 설정하려면 어떻게해야합니까? 페이지가로드 된 후document.activeElement에 텍스트 값을 설정하는 방법은 무엇입니까?

--update

나는 자바 스크립트를 통해하는 XUL 응용 프로그램을 시도하고있다. 붙여 넣기 명령이 잘 작동하므로 필드에 포커스가 있다는 것을 알고 있습니다. 당신이이 입력 텍스트 필드 확신한다면 그냥 값을 설정

+0

document.activeElement.value를 사용한 대답은 작동합니다. http://jsfiddle.net/FEKZj/를 확인하십시오. 특정 시나리오에서 이것이 작동하지 않는다면 다른 일이있을 것입니다. 문제가 발생한 곳의 코드를 모두 게시 해주십시오. – KatieK

답변

0

와 같은 유형입니다. Javascript는 브라우저에서와 같이 작동해야했지만 그렇지 않았습니다. 내가 작업 (후 클립 보드에 내용을 넣어)했다 그것을 만들기 위해 무슨 짓을

는 :

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

를 (그냥 자바 스크립트에 관하여 렸기 때문에 나는이 XUL 태그를 넣어하지 않았다) :

document.activeElement.value = 'value' 
+0

Google 텍스트 필드에서는 작동하지 않습니다. –

+0

@Tom Brito 아니요, Google은 텍스트 상자에 이상한 AJAX를 사용하기 때문에 그렇지 않습니다. SO 검색 창으로 시도하십시오. – lonesomeday

+0

@lonesomeday 그것도 작동하지 않았다. 우리가 여기서 일하게 만들었지 만, 어떤 웹 사이트의 입력 필드에서도 작동 할 수있는 방법이 없습니까? –

1

mozilla reference를 참조하십시오. 이것은 내가 내가 XUL 응용 프로그램에이기 때문에 좀 더 문제가 있다고 생각 document.getElementById()

document.activeElement.value = 'new value'; 
+0

Google 텍스트 필드에서 작동하지 않았습니다. –

+0

@Tom Brito - 음, 콘솔을 통해이 작업을 수행하려고합니까? 그것은 크롬 콘솔에서 나를 위해 일했습니다. –

+0

페이지가로드 된 후 javascript를 통해 xul 응용 프로그램에서. 붙여 넣기 명령이 제대로 작동하므로 필드에 포커스가 있다는 것을 알고 있습니다. –

1

코드 컨텍스트가의 실행을 보지 않고, 난 단지 추측 할 수 있습니다. 그러나 XUL 앱에서 document.activeElement을 호출하고있는 것 같습니다. 즉 document은 콘텐츠 페이지가 아니라 크롬 문서입니다. 이 경우 활성 요소는 콘텐츠를 표시하는 데 사용하는 browser 또는 iframe 요소 일 수 있습니다.

+0

저는 window 엘리먼트 안에서 browser 엘리먼트를 사용하고 있습니다. IMO, 내 활성 요소가 항상 브라우저 일 경우 Xulrunner의 버그로 간주되어야합니다. 그러나 나는 그것이 어떤 요소인지를 확신 할 방법이 없다고 생각한다. –

+0

이것은 버그가 아닙니다. 문서의 activeElement를 요청하고 있습니다. 문서에 xul : 브라우저가 있습니다. 브라우저에서 활성 요소를 원하면 브라우저에서 contentDocument 속성을 사용하고 activeElement에 액세스합니다. (https : //developer.mozilla.org/ko/XUL/browser # p-contentDocument) – sdwilsh

+0

@sdwilsh :'오류 : document.activeElement.contentDocument가 정의되지 않았습니다. ', 내 activeElement가 다른 것처럼 보입니다. 그러나 창에 브라우저 요소 만 있습니다. 나중에 더 많은 것들을 추가하려고하므로 페이지를로드하기 위해 창 자체를 사용하는 대신 브라우저 요소가 필요합니다.) –

0

집중된 요소를 원하는 응용 프로그램 창과 관련된 위치에 배치하려는 경우 (예 :. <browser> 요소 안에있을 수 있으며 document.commandDispatcher.focusedWindow.document.activeElement.value과 같은 document.commandDispatcher.focusedElement.value을 사용하십시오. 이것은 cmd_paste이 작동하는 요소를 제공합니다.

+0

이 'value'를 속성과 속성으로 설정하려고 시도했지만 아무 것도 발생하지 않았습니다. 붙여 넣기가 어떻게 작동하는지 모르겠습니다. –

관련 문제