브라우저 요소가 아닌 경우에 findbar을 사용할 방법이 있습니까?브라우저가 아닌 요소에서 찾기 막대를 사용할 수 있습니까?
listbox에 prefwindow에 findbar를 사용하려고합니다.
브라우저 요소가 아닌 경우에 findbar을 사용할 방법이 있습니까?브라우저가 아닌 요소에서 찾기 막대를 사용할 수 있습니까?
listbox에 prefwindow에 findbar를 사용하려고합니다.
불행히도 <findbar>
위젯은 실제로 브라우저 요소와 함께 사용하기위한 것입니다. 은 필요한 브라우저 API를 위장한 경우 다른 데이터와 함께 사용할 수 있지만 앞으로는 계속 작동한다는 보장은 없습니다. 특히 문제의 API는 Adblock Plus 또는 Stylish와 같은 API를 구현 한 모든 확장을 깨뜨린 Firefox 26에서 동기식에서 비동기식으로 변경되었습니다. 에서
implementation of the <findbar>
widget 당신이 현재 브라우저에서 무엇을 기대 볼 수 있습니다
Components.utils.import("resource://gre/modules/Services.jsm");
var fakeBrowser = {
finder: new Finder(),
_lastSearchString: "",
_lastSearchHighlight: false,
currentURI: Services.io.newURI("http://example.com/"),
contentWindow: null,
addEventListener: function() {}
removeEventListener: function() {},
};
이 가짜 브라우저가 findbar.browser
property에 할당 할 수 있습니다. 여기서 중요한 부분은 finder
속성이며 일반적으로 Finder
object defined by Finder.jsm
입니다. 물론 동일한 API를 제공하는 객체를 구현하고 싶을 것이다.
감사합니다. Finder.jsm을 가지고 놀기 시작했고 listbox에 대해 제안한 것처럼 fakeBrowser를 사용하여 처음부터 시작하는 것이 더 낫다고 생각합니다. 아마도 더 나은 호환성을 위해 아마도 미래에 변경 될 경우를 대비하여 findbar.xml xbl의 사본을 사용해야합니다. – vanowm
@vanowm : 그곳에갔습니다. 단점은 브라우저에서와 같은 방식으로 findbar 위젯의 스타일을 지정할 수 없다는 것입니다. 스타일 업을 브라우저로 남겨 둘 수 있지만 새로운 findbar 버전을위한 스타일이 자신에게 적용되는 경우 다시 파손될 위험이 있습니다. 자신 만의 findbar 스타일 사본을 사용할 수는 있지만 브라우저는 실제로 각 운영체제 (물론 사용자 정의 테마)마다 다른 findbar 스타일을 가지고 있습니다. 또한 확장명에 세 가지 스타일 파일을 모두 포함하더라도 몇 가지 브라우저를 릴리스 한 후에는 찾기 막대가 오래된 것으로 표시 될 수 있습니다. –