>웹 프론트엔드 >JS 튜토리얼 >Firefox Extension School에서 결코 말하지 않는 10 가지

Firefox Extension School에서 결코 말하지 않는 10 가지

Joseph Gordon-Levitt
Joseph Gordon-Levitt원래의
2025-03-07 00:08:17829검색

Firefox Extension School에서 결코 말하지 않는 10 가지 이것은 최근 전자 책에 대한 후속 기사입니다. 자체 Firefox 확장을 구축하십시오. Codeburner를 포함하여 Firefox를위한 확장에 대한 경험에서 수집 한 유용한 팁, 트릭 및 해킹을 추가로 선택했습니다. Firefox 확장을 구축하는 방법에 대한 기본 지식이 가정되므로 아직 아직 그렇게하지 않은 경우 eBook의 무료 사본을 먼저 가져 오는 것이 좋습니다. 여기에있는 대부분의 내용은 여전히 ​​"해야 할"목록에 있거나 직접 만들었 기 때문에 Mozilla Developer Center (MDC)에서 명시 적으로 문서화되지 않습니다. 그것의 일부는 잘 문서화되어 있지만 어쨌든 당신의 관심을 끌만 할 가치가 있다고 생각하기에는 너무 유용합니다.

팁은 가장 짧고 단순한 아이디어로 시작하여 더 길고 복잡한 아이디어로 시작하여 복잡성 순서로 나열됩니다.

주목하십시오. 최상위 기능 (함수 키워드 사용). 그러나 실제로는 메인 확장 객체의 메소드로 만들어야합니다.

. 키 테이크 아웃

``,`

`와 같은 xul 요소에 아이콘을 추가하기 위해`listyle-image '를 사용하여``, 많은 사람들이'배경 이미지 '를 지원하지 않기 때문에. 화살표 키를 사용하여 내비게이션을 활성화하기 위해 'tabindex =”0 ″`를 추가하여 Mac OS X 키보드 액세스 할 수 있도록 Mac OS X 키보드 액세스 가능에 대한 Firefox에서``요소를 만듭니다. 'PopuPnode'속성을 사용하여 Firefox에서 컨텍스트 메뉴 이벤트의 원래 마우스-표적에 액세스하여 사용자 지정 컨텍스트 메뉴 내에서의 상호 작용을 단순화합니다. 'flex'속성없이 중간 래퍼 요소를 사용하여 Xul 레이아웃에서 'flex'속성의 원치 않는 상속을 방지하여 자식 요소 크기에 대한보다 정확한 제어를 보장합니다. 는 Windows, Linux 및 Mac OS X에 걸쳐 다양한 UI 규칙을 수용하기 위해 Firefox 확장에서 플랫폼 별 스타일 시트를 구현하여 기본 인터페이스 표준을 준수하여 사용자 경험을 향상시킵니다. 1. 목록 스타일 이미지가있는 아이콘을 추가하십시오.

많은 XUL 요소는 CSS 배경 이미지 속성을 지원하지 않지만 많은
    > 지원 목록 스타일 이미지를 지원합니다. 여기에는 , Mac OS X X
  • 의 키보드 중심 탭.
    3. 참조 컨텍스트 메뉴의 원래 마우스-표적

    XUL 컨텍스트 메뉴에서 항목을 클릭하면 이벤트 대상 참조는 을 클릭 한 것입니다. 그러나 당신이 원본 대상 요소에 대한 참조를 원한다면 어떻게해야합니까? 즉, 메뉴를 처음으로 스폰하도록 마우스 오른쪽 버튼을 클릭 한 요소는? Firefox 가이 참조를 포함하는 속성을 제공하기 때문에 엄청나게 간단합니다. 이를 PopuPnode라고하며 문서의 속성입니다. 사용하는 가장 쉬운 방법은 메뉴 항목의 명령 이벤트를 통해 전달하는 것입니다 : 4. 요소가 Flex를 상속하는 것을 방지

    대부분의 XUL 요소에 Flex 속성을 추가하면 사용 가능한 공간을 채우도록 확장됩니다. 그러나 플렉스는 상속되므로 아이들은
    textbox[type="search"] <br>{ <br>  list-style-image:url(chrome://myextension/content/images/magglass.png); <br>}
    도 확장되며 어떤 경우에는 바람직하지 않습니다. 예를 들어, 자식 요소가 인 경우 정확한 치수를 갖기를 원할 것입니다. 그러나 상속 된 플렉스를 명시 적으로 부정하는 방법은 없다.
    는 한 레벨의 깊이 만 상속되므로

    는 선언 된 플렉스 속성없이 중간 래퍼 요소를 추가하여이를 부정 할 수있다 : 5. 크롬로드 이벤트에서 대화 상자를 생성하여

    window.opendialog를 사용하여 크롬로드 이벤트에서 모달 및 중앙 스크린 기능과 대화 상자를 생성하면 맥주 X에서 대화 상자가 대부분 화면 상단에 숨겨져 있습니다. 이는 창 크기가 설정되기 전에 대화 상자가 배치되기 때문에 센터 스크린 속성이 예상대로 작동하지 않기 때문입니다. 경고 함수에서도 동일한 문제가 발생합니다. 빠르고 더러운 디버깅 도구로 사용하는 경우 문제가 될 수 있습니다.

    한 가지 솔루션은 빠른 설정 타임 아웃에서 OpenDialog 또는 Alert 기능을 래핑하는 것입니다. 이것은 대화 상자가 발사되기 전에 기본 창의 크기를 보장하므로 올바르게 배치됩니다. Windows 및 Linux에 대한 사용자 정의 대화 상자 아이콘 추가 대화 상자에 사용자 정의 아이콘을 추가하려면 먼저 Extension의 Chrome 디렉토리 내부에 아이콘이라는 폴더를 만듭니다. 그런 다음 아이콘 폴더 내부에서 Default라는 다른 폴더를 만듭니다. 기본 폴더 내에서 요소의 ID와 동일한 이름의 아이콘을 저장합니다. 예를 들어, 대화 상자에 ID Myextension Proferences가 있으면 myextension-preferences.ico라는 아이콘을 생성합니다 (Windows, 또는 linux 용 .png). MDC 문서에 따르면 Linux에는 XPM 이미지를 사용하지만 알파 채널 투명성에 대한 지원이 부족합니다. PNG 파일은 지원을 제공하며 또한 작동합니다.

    Windows에서는 아이콘이 작업 표시 줄에도 나타납니다 : .
    <tab> elements are natively inaccessible to the keyboard in Firefox for Mac OS X. To make them accessible you need to manually insert them into the tab order, by adding a tabindex attribute with the value 0. This value is effectively "auto", and places the element at its source-order position in the overall tab order:
    Windows XP의 사용자 정의 대화 상자 XP
    이 대화 상자는 아이콘없이 대화 상자가 표시되기 때문에 Mac OS X와 ​​다릅니다.
    7. 가장 최근에 열린 창에 대한 참조

    Firefox의 Window Mediator 인터페이스를 사용하여 가장 최근에 열린 브라우저 창에 대한 참조를 얻을 수 있습니다. 외부 대화 상자에서 웹 링크를 열고 Window보다 더 신뢰할 수있는 경우 유용 할 수 있습니다.

    다음은 창 참조를 반환하는 짧고 달콤한 방법이 있습니다. 모든 열린 탭의 URL을 가져 오십시오

    이전 팁에서 다음 팁을 따라 가면 현재 열린 모든 브라우저 창을 통해 반복하고 URL을 추출하여 계층 적 배열로 패키지 (탭으로 먼저 그룹화)
    textbox[type="search"] <br>{ <br>  list-style-image:url(chrome://myextension/content/images/magglass.png); <br>}

    다음 방법이 정확하게 수행 할 수 있습니다. 최종 행렬의 각 멤버는 자체 자체가 탭의 URL과 부울 플래그 (선택된)를 포함하는 배열입니다. 인터페이스가 창에 초점을 맞추도록

    대부분의 Mac Windows는 창에 초점을 잃을 때 외관이 변경됩니다. 이 효과를 자신의 인터페이스 컨트롤에서 구현하려면 창이 초점을 얻고 초점을 잃는시기를 알아야합니다.
    첫 번째 본능은 창 초점을 사용하고 이벤트를 흐리게하는 것이지만 때로는 직관적으로 행동하기 때문에이 목적에 대해 신뢰할 수없는 것으로 밝혀졌습니다. 예를 들어, 응용 프로그램 초점이 내장 된 의 문서로 이동하면 창이 여전히 집중적이지만 메인 창 블러 이벤트가 시작됩니다. 이는 또는 순수한 CSS로 달성하려는 효과를 달성 할 수 있다면 부정적인 의사 클래스와 함께 속성 선택기를 사용할 수 있습니다. 예를 들어, 정상과 비활성화 된 상태 사이에 아이콘을 전환하려면

    10. 플랫폼 별 스타일 시트

    textbox[type="search"] <br>{ <br>  list-style-image:url(chrome://myextension/content/images/magglass.png); <br>}
    Firefox를 여러 플랫폼에서 구현할 수 있으며, 이들 각각은 외관 및 인터페이스 구성 요소의 배치와 관련된 자체 규칙이 있습니다. 이에 대한 좋은 예는 경고 대화 상자에서 OK 및 취소 버튼입니다. Windows 및 Linux에서 OK 버튼은 취소 버튼의 왼쪽에 있고 Mac OS에서는 다른 방법입니다. 닫히고 최소화 된 창 버튼의 모양은 각 플랫폼마다 다르기 때문에 또 다른 인스턴스입니다.
    이러한 변형을 감안할 때 플랫폼 별 스타일 시트를 자신의 확장자 인터페이스에 적용 할 수 있습니다. 이렇게하면 버튼의 대체 아이콘, 사용자 정의 인터페이스 컨트롤을위한 다른 글꼴 등과 같은 변형을 구현할 수 있습니다.
    Firefox는 특수 폴더 계층 구조와 매니페스트 파일 세트를 사용하여이를 수행하기위한 간단한 메커니즘을 제공합니다.

    폴더 계층을 생성해야합니다. 다음 다이어그램의 최상위 플랫폼 폴더는 Chrome 폴더와 같은 수준으로 Extension의 루트 폴더 내부로 이동해야합니다. 모든 폴더 이름과 파일 이름은 스타일 시트 자체의 이름을 제외하고 여기에 표시된 것과 정확히 적합해야합니다 (또한 대소 문자를 사용합니다). 이것은 당신이 좋아하는 것이 될 수 있지만, 물론 각 플랫폼의 사본에 대해 동일해야합니다.

    플랫폼 별 스타일 시트의 폴더 계층 구조

    명백한 경우 "Darwin"은 Mac X, "Winnt"는 Windows, "Linux"는… Linux입니다. 해당 Chrome.manifest 파일은이 동일한 탭으로 표시된 선 ( "Myextension"을 확장자 이름으로 대체)을 포함해야합니다.

    피부 디렉토리를 참조하는 방법을 확인하십시오. Firefox는 실행중인 플랫폼에 따라 어떤 특정 스타일 시트를 포함 해야하는지 확인하십시오. 원하는만큼 다양한 스타일 시트로 원리를 확장 할 수 있습니다. 각 플랫폼 폴더에 버전을 작성한 다음 동일한 URL 패턴을 사용하여 XUL 문서에 추가하십시오. Firefox Extension School에서 결코 말하지 않는 10 가지 11. 브라우저의 히스토리에 URL을 추가하십시오 추가 보너스 팁은 다음과 같습니다. MDC의 XUL 참조는 히스토리가 자동 완성 된 텍스트 상자를 만드는 방법을 알려줍니다. 불행히도, 역사에 새로운 URL을 추가하는 방법을 알려주지 않으므로 Firefox의 소스 코드를 트롤링하여 어려운 방법을 해결해야했습니다. 여기에 표시 할 방법은 URL을 추가하고, 검색하고, 파비콘을 저장하며, 기본 기록이 거래에 자동 완성되어 있습니다! .

    히스토리 자동 완성 메뉴가있는 텍스트 상자, 우리가 프로그래밍 방식으로 추가 된 항목을 보여주는 : 브라우저의 역사에 추가하면 Firefox 3 이상에서 작동하지만 favicon은 3.5 또는 나중에 버전에서만 작동합니다. 속성. 다음 코드 예제에서, 함수 이름 AddurltoHistory는 원하는 것이 될 수 있으며 Flex 속성은 선택 사항이지만 다른 모든 것은 정확히 표시되어야합니다.

    유형 및 자동 완성 연구 속성은 기본 자동 완성 동작을 유발하는 것입니다. 완성 된 선택 사항 속성은 자동 완성 메뉴에서 항목을 선택할 때 해당 값이 텍스트 상자에 자동으로 기록되도록하는 것입니다. 이를 통해 Enter 키를 즉시 눌러 명령 함수를 발사 할 수 있습니다. NewLines 속성은 단순히 원치 않는 공백 (예 : 선두 또는 후행 공간)의 값을 수동으로 구문 분석하지 않도록하기 위해서는 OnCommand가 아닌 OnkeyDown에 의해 명령 함수가 어떻게 트리거되는지 주목하십시오. 요소에 OnCommand 이벤트가 없기 때문입니다. 일반적으로 사용되는 이벤트는 OnInput (표시 가능한 텍스트를 입력 할 때 발사) 및 OnChange (값이 변경 될 때 발사)입니다. 자동 완성 제안에 대한 응답으로 값이 자주 바뀌기 때문에 대부분 원치 않는 값이 될 것이므로 Enter 키가 눌릴 때까지 명령 조치를 연기하고 있습니다. 여기에있는 것은 이미 기능적 자동 완성 기록 상자에 충분합니다. 텍스트 상자에 텍스트를 입력하거나 붙여 넣을 수 있으며 입력 한 내용에 따라 필터링 된 히스토리와 함께 드롭 다운 메뉴가 나타납니다. 그런 다음 해당 메뉴에서 선택할 수 있고 선택이 텍스트 상자에 기록됩니다.

    enableHistory = "true"를 추가하여 드롭 다운 메뉴를 표시하도록 화살표 버튼을 추가 할 수도 있습니다. 이제 Enter를 누를 때 발생하는 명령 기능을 살펴 보겠습니다. 실제로는 지정된 URL을 에로드하는 등 다른 작업을 수행 할 것입니다. 먼저 코드를 표시 한 다음 비트 단위로 확인합니다.

    먼저 URL이없는 경우 프로토콜을 추가하여 (사용자가 "www"를 입력 할 수 있도록 프로토콜을 추가 한 다음 [수정 된] URL을 텍스트 상자에 다시 작성하십시오. 그런 다음 CGI 매개 변수 이외의 공간이나 여러 점이 포함 된 경우, 우리는 오르플 링 된 구문에 경고를 던지고 함수를 종료합니다. 이것은 Firefox가 질식하는 것을 막는 데 실제로 필요한 모든 검증입니다. 예를 들어 콘솔에 오류를 던지거나 사용자에게 오류가 발생했음을 알리기 위해 사용자 정의 메소드를 구현하여 오류를보다 우아하게 처리하는 것을 선호 할 수 있습니다. 다음으로, 우리는 실제로 URL을 역사에 추가하는 비즈니스를 수행합니다. 역사 서비스는 평범한 Uri 문자열을 받아들이지 않으므로 IURI라는 것을 만들어야합니다. 이것은 호스트를 포함하여 다양한 메타 데이터를 포함하는 URI 객체입니다. 우리는 IO 서비스를 사용하여 IURI 객체를 생성 한 다음 글로벌 역사 서비스에 전달하여 브라우저의 역사에 추가합니다.

    코드의 나머지 부분은 Favicon을 잡는 것입니다. 이것은 시도로 랩핑됩니다. 두 가지 이유로 블록을 잡을 수 있습니다. 첫째, 어떤 이유로 든 Favicon이 예상 URL에 실패하고 Firefox 3.5 이상에서만 작동하기 때문에 오류가 발생하지 않도록 오류가 발생하지 않습니다. 따라서 먼저 Favicon 서비스를 초기화 한 다음 Favicon 주소에 대한 IURI 객체를 만듭니다 (원래 iuri의 호스트 이름 사용). 그런 다음 Favicon Iuri 객체를 Favicon 서비스에 전달하여 Favicon을로드하고 저장합니다.

    그리고 거기에 우리는 그것을 가지고 있습니다! 다음에 동일한 주소를 TextBox에 입력하면 Favicon과 함께 자동 완성 메뉴에 표시됩니다. Favicon 프로세스는 비동기식이라는 점에 유의하십시오. 텍스트 상자에 바로 표시하려면 SetInterval 루프를 실행하여 아직 존재하는지 확인해야합니다. 다음과 같은 코드로 다음과 같은 코드로 수행 할 수 있습니다.

    이 코드는 약간 까다 롭습니다. 500 밀리 초 (SetInterval의 두 번째 매개 변수)마다 페이지의 Favicon에 대한 Favicon 서비스를 요청합니다. Moz-Anno : Favicon : Protocol (Favicon이 다운로드 된 경우) 또는 Chrome : Protocol (기본 이미지를 반환하는 경우)과 함께 포맷 된 URI를 반환합니다. 20 번 (총 10 초)를 시도했거나 Moz-Anno : Favicon : URI에서 표시된대로 페이지에 대한 Favicon을 성공적으로 다운로드 한 경우 텍스트 상자의 목록 스타일-이미지 URL로 설정했습니다.

    우리는 빠른 팁 목록에 적용됩니다. 아직 그렇게하지 않았다면 내 eBook 다운로드 Codeburner Extension과 함께 무료로 제공되는 자신의 Firefox 확장을 작성하십시오.

    Firefox 확장 제작과 Codeburner 제품군에 새로운 추가 기능을 구축하는 것에 대한 다른 기사를주의 깊게 살펴보십시오!

    Firefox 확장에 대한 자주 묻는 질문 (FAQ) Firefox 확장자를 설치하려면 어떻게해야합니까?

    textbox[type="search"] <br>{ <br>  list-style-image:url(chrome://myextension/content/images/magglass.png); <br>}
    Firefox 확장자 설치는 간단한 프로세스입니다. 먼저 Firefox 브라우저를 열고 오른쪽 상단에 3 개의 수평선으로 표시되는 메뉴 버튼을 클릭하십시오. 드롭 다운 메뉴에서‘추가 기능’을 선택하십시오. Add-Ons Manager 탭이 열립니다. 검색 창에 설치하려는 확장자 이름을 입력하고 Enter를 누릅니다. 설치하려는 확장자 옆의 'Firefox에 추가'버튼을 클릭하십시오. 팝업이 확장을 추가 할 수있는 권한을 요구하는 것처럼 보입니다. ‘추가’를 클릭하면 확장자가 설치됩니다. 내 파이어 폭스 확장이 작동하지 않는 이유는 무엇입니까?

    Firefox 확장이 작동하지 않는 몇 가지 이유가있을 수 있습니다. 구식 버전의 Firefox, 다른 확장과 충돌 또는 확장 자체 문제로 인한 것일 수 있습니다. Firefox를 최신 버전으로 업데이트하거나 다른 확장을 비활성화하여 충돌을 확인하거나 문제가있는 확장을 다시 설치하십시오. 문제가 지속되면 확장자 개발자에게 연락하여 지원을 받으십시오.

    Firefox 확장을 어떻게 관리 할 수 ​​있습니까?

    Firefox 확장을 관리하려면 Firefox 메뉴를 열고 '추가 기능'을 선택하십시오. Add-Ons Manager 탭이 열립니다. 여기서는 확장자를 활성화 또는 비활성화하거나 확장을 제거하거나 각 확장에 대한 옵션에 액세스 할 수 있습니다.

    Firefox 확장자가 내 브라우저 속도를 늦출 수 있습니까?

    예, 일부 Firefox 확장자는 브라우저를 느리게 할 수 있습니다. 각 확장자는 어느 정도의 시스템 리소스를 사용하고 너무 많은 양이 있으면 브라우저 속도를 늦출 수 있습니다. 브라우저가 천천히 실행되고 있음을 알면 일부 확장 기능을 비활성화하여 개선되는지 확인하십시오.

    Firefox 확장자가 안전합니까?

    대부분의 Firefox 확장은 사용하기에 안전합니다. 그러나 다른 소프트웨어와 마찬가지로 악성 행위자에 의해 잠재적으로 악용 될 수 있습니다. 안전을 보장하려면 신뢰할 수있는 소스에서 확장을 설치하고 확장자를 업데이트하고 확장을 정기적으로 검토하십시오.

    내 파이어 폭스 확장을 어떻게 업데이트 할 수 있습니까?

    Firefox는 자동으로 확장에 대한 업데이트를 점검하십시오. 그러나 Firefox 메뉴를 열고 '애드온'을 선택한 다음 기어 아이콘을 클릭하고 '업데이트 확인'을 선택하여 업데이트를 수동으로 확인할 수도 있습니다.

    모바일에서 Firefox 확장자를 사용할 수 있습니까?

    현재는 한정된 파이어 피스 확장 기능 만 사용할 수 있습니다. 모바일에서 확장 상태가 있는지 확인하려면 Firefox Add-Nons 웹 사이트의 Extension 페이지를 방문하여 'Android 용 사용할 수있는'레이블을 찾으십시오.

    내 Firefox 확장을 어떻게 개발할 수 있습니까?

    자신의 Firefox 확장을 개발하려면 html, CSS 및 Javascript와 같은 웹 기술에 대한 기본적인 이해가 필요합니다. Mozilla는 개발자 웹 사이트에서 Firefox 확장을 개발하는 방법에 대한 포괄적 인 안내서를 제공합니다.

    사용하기에 가장 좋은 Firefox 확장 기능은 무엇입니까?

    사용하기에 가장 좋은 Firefox 확장은 귀하의 요구에 따라 다릅니다. 일부 인기있는 확장에는 광고 차단을위한 Ublock 원점, 암호 관리를위한 LastPass 및 Dark Reader의 Dark Reader가 포함됩니다.

    Firefox에서 Chrome Extensions를 사용할 수 있습니까?

    일부 Chrome 확장은 Chrome Store Foxified라는 확장을 사용하여 Firefox에서 사용할 수 있습니다. 그러나 두 브라우저가 확장을 처리하는 방식의 차이로 인해 모든 크롬 확장이 Firefox에서 작동하는 것은 아닙니다.

위 내용은 Firefox Extension School에서 결코 말하지 않는 10 가지의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.