2011-10-11 2 views
2

내 파이어 폭스 확장 기능은 모든 페이지에 사용자 이름/암호 필드를 동적으로 추가합니다. 문제는 내가 정상적으로 입력 한 내용을 기억하지 못한다는 것입니다. 왜 이런 일이 일어나는거야?파이어 폭스는 파이어 폭스 확장자로 생성 된 텍스트 상자에 입력 된 데이터를 기억하지 않습니다.

+0

이 요소는 언제 추가됩니까 ('load' 이벤트 이전, 도중 또는 이후)? 'id' 속성을 가지고 있습니까? –

+0

로드 이벤트 후 ID가 없습니다. –

답변

0

nsLoginManager.js을 보면 DOMContentLoaded 이벤트가 발생하면 양식이 채워집니다 (_fillDocument() 호출 참조). 내가 이해 한 것부터, 이벤트가 이미 처리 된 후에 요소를 삽입하여 값이 더 이상 복원되지 않도록합니다. id 속성을 가지는 것은 필요하지 않다고 보인다 코드에서,

Components.classes["@mozilla.org/login-manager;1"] 
      .getService(Components.interfaces.nsILoginManager) 
      .fillForm(form); 

이 충분해야한다 : 양식을 변경 한 후에는 필드 값을 복원하기 위해 명시 적으로 그러나 nsILoginManager.fillForm() 호출 할 수 있습니다.