Firefox 확장 기능의 자바 스크립트에서는 gBrowser.getBrowserForTab
을 호출 할 수 있지만 gBrowser.getTabForBrowser
은 없습니다. 그래서 나는 자기 자신을 썼다. 그리고 그것은 효과적이다. 그리고 내가 이것을하지 말아야 할 어떤 이유가 있거나, 코드에 문제가 있다면, 나는 단지 궁금하다. 다음은 윈도우가로드 될 때 호출되는 내 init
메서드입니다. 난 당신이 자신의 롤해야하므로 더는 getTabForBrowser
기능을 내장이없는 알고 멀리로Firefox gBrowser.getBrowserForTab하지만 gBrowser.getTabForBrowser가 없습니까?
gBrowser.getTabForBrowser = function(browser) {
for (var i=0; i<gBrowser.browsers.length; i++) {
if (gBrowser.getBrowserAtIndex(i) === browser) {
return gBrowser.tabContainer.getItemAtIndex(i);
}
}
return null;
}
(또는이 gBrowser.prototype.getTabForBrowser = ...
해야합니까?)
'=='또는'==='여야합니까? 두 개의 ''이 정확히 동일한 브라우저가 아니더라도 동일한 것으로 비교할 수 있다고 생각합니다. 확실하지는 않지만. 그래서'==='는 나에게 더 안전 해 보인다. –
MatrixFrog
몇 가지 간단한 실험을 한 후에 DOM의 브라우저를 재정리하는 것처럼 보이지만 그 것에 의존해서는 안된다는 것이 맞습니다. 좋은 지적! – MatrixFrog
'a === b'는'typeof a == typeof b && a == b'와 동등하므로 양쪽 피연산자의 타입이 이미 동일하다고 알려진 경우'==='는 필요 없습니다. Javascript의 객체는 참조로 변수에 할당되므로 동일한 속성 이름과 값이 포함 된 경우에도 두 개의 개별 객체가 동일하게 비교되지 않습니다. '({x : 5}) == ({x : 5})'는'false'로 평가됩니다. 그것은 말하자면, 확실히 상처를주지 않으며, 당신이 그것에 대해 너무 열심히 생각할 필요가 없다는 장점이 있습니다. – MooGoo