문제

XUL 구성 요소가 웹 페이지에 정의 된 JavaScript와 상호 작용할 수 있도록 작성한 JavaScript가 가능합니까?

예를 들어, 특정 웹 페이지에 DoosomethingNeat () 함수가있는 경우 XUL 오버레이에 해당 함수를 실행하거나 다른 네임 스페이스에 실시간 버튼을 정의 할 수 있습니까?

다른 방법으로 말하십시오 : 내 코드를 통해 웹 사이트의 기능을 향상시키려는 경우 Firefox 확장자를 작성하거나 Greasemonkey와 같은 것을 사용하는 것이 더 합리적입니까?

도움이 되었습니까?

해결책

보다 다른 질문에 대한 나의 대답.

  • 웹 페이지 코드 하다 브라우저 코드가 실행하는 스코프와 별개의 '네임 스페이스'에 살고 있습니다.
  • 그러나 확장에서 액세스 할 수 없다는 의미는 아닙니다.
  • 반면에, 컨텐츠 페이지에서 함수를 실행하는 것은이 순간에 안전하게 수행하기가 쉽지 않습니다.
  • Greasemonkey 스크립트 (및 웹 페이지와 상호 작용할 수있는 유비쿼터스 스크립트)는 확장보다 개발하기가 다소 쉽고 GreasemonKey는 이미 웹 페이지와 안전하게 상호 작용할 수있는 필요한 보안 예방 조치를 구현합니다.
  • 다른 사람이 스크립트를 사용하려면 독립형 확장으로 포장하면 항목 장벽이 낮아집니다 (다른 경우 기존 GM 사용자는 더 간단한 GM 스크립트를 별도의 확장자보다 선호 할 수 있습니다).

따라서 GM 스크립트 또는 유비쿼터스 스크립트로 관련이있는 것을 구현할 수 있다면 함께 가고 싶습니다. 적어도 시작하여 시작한 다음 GM으로 할 수없는 일을 찾을 때 확장으로 변환 할 수 있습니다.

Greasemonkey에서 지원하지 않는 기능이 필요하거나 확장자를 만들려면 실행 가능한 옵션이기도합니다.

다른 팁

이있다 Greasemonkey-to-firefox-extension "컴파일러"를 사용할 수 있지만 최신 GM 변경으로 최신 정보가 아닙니다.

그러나 페이지 상호 작용 및 보안을위한 기본 GM 프레임 워크가 모두 독립형 확장으로 마무리되어 수정 및 확장 할 수 있습니다.

독립형 확장자 또는 GM 스크립트를 사용하는 것은 누가이 설치를 할 것인지에 달려 있습니다. 사용자 기반이 GreasemonKey를 설치 한 다음 스크립트를 기꺼이 설치합니까? 아니면 확장자만으로 설치 장벽이 충분합니까?

GM 라이센스는 사전 설정된 스크립트로 재 포장을 허용하지만 현재이에 대한 인용을 찾을 수는 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top