문서의 콘텐츠 유형이 특정 패턴과 일치하는 경우에만 콘텐츠 스크립트를 삽입 할 수 있습니까? 사실 내 목표는 훨씬 간단합니다. HTML 문서에 내 콘텐츠 스크립트를 삽입해야합니다. (지금은 XML 문서에도 삽입되어 있습니다). 내용 스크립트는 "document_start"에 삽입되어야합니다.Chrome 확장 콘텐츠 스크립트를 특정 콘텐츠 유형으로 제한하는 방법은 무엇입니까?
5
A
답변
1
비슷한 문제가 발생하여 다음과 같이 해결했습니다.
콘텐츠 스크립트가 삽입 된 다양한 문서를 문서의 Content-Type
을 기반으로 제한하는 대신 모든 스크립트에 스크립트를 삽입하기로 결정했지만 적절한 스크립트로만 스크립트를 실행하기로 결정했습니다.
document.doctype
는 HTML 문서에서null
하지이어야합니다 :이
은document.xmlVersion
및document.doctype
특성을 분석하여 수행됩니다 XML 문서에서null
이 아니어야합니다.
그래서 하나의 유형을 다른 유형과 구별하고 필요한 경우에만 필요한 모든 스크립트를 "바인딩"하는 것이 쉽습니다. 특히 작은 스크립트 로더를 삽입 할 수 있습니다. 그러면 조건에 따라 무거운 물건이 추가로로드됩니다.
Chrome은 문서 유형별로 스크립트 삽입을 제한하는 수단을 제공하지 않습니다.
0
이 작업을 수행하는 가장 강력한 방법은 chrome.webRequest.onHeadersReceived
을 통해 이루어지며 응답 헤더 정보 (Content-Type
포함)를 쿼리하고 보관할 수 있습니다. 유감스럽게도이 API는 현재 안정적인 Chrome 버전에서 사용할 수 없습니다. (Chrome의 현재 버전에서는 실험용 API를 사용할 수 있지만이를 사용하는 확장 프로그램을 게시 할 수는 없습니다.)
삽입 된 문서가 Chrome에 의해 처리되는지 여부를 확인하는 것이 하나의 해결책입니다 XML로. (그렇다면 문서 처리를 중단하십시오.)이를 수행하기위한 해킹은 document.getElementById('webkit-xml-viewer-source-xml')
이 null
인지 확인하는 것입니다. 이 요소는 Chrome/웹킷의 XML 뷰어의 일부입니다.
관련 문제
- 1. 데이터베이스의 콘텐츠 표시를 제한하는 방법은 무엇입니까?
- 2. Chrome 확장 프로그램에서 콘텐츠 스크립트를 실행하는 동안 파일을 가져 오는 방법은 무엇입니까?
- 3. 확장 프로그램의 콘텐츠 유형을 찾는 방법은 무엇입니까?
- 4. 콘텐츠 스크립트에서 Chrome 확장 프로그램으로 패키지 된 파일 읽기
- 5. Chrome 확장 - 단일 페이지로드 당 여러 번 삽입되는 콘텐츠 스크립트
- 6. Chrome 확장 콘텐츠 스크립트가 삽입 된 페이지의 DOM에 액세스하지 않습니다.
- 7. Chrome 확장 프로그램, 페이지 콘텐츠 수정 방법 (무언가 추가)
- 8. Chrome 확장 콘텐츠 스크립트에서 문서를 처리하기 전에 document.ready를 기다려야합니까?
- 9. 아약스 변경시 Chrome 확장 프로그램 실행 콘텐츠 스크립트
- 10. Chrome 콘텐츠 스크립트에 coffeescript를 사용 하시겠습니까?
- 11. 크롬 확장 - 주문형 콘텐츠 스크립트
- 12. Google 크롬 확장 - 콘텐츠 스크립트를 두 번 이상 포함하려면 어떻게해야합니까?
- 13. Chrome 확장 프로그램 : 클라이언트 측에서 콘텐츠 편집기 실행
- 14. 페이스 북에서 크롬 확장을위한 콘텐츠 스크립트를 다시로드해야합니다.
- 15. Chrome 확장 프로그램의 콘텐츠 스크립트에서 페이지 스크립트와 통신합니다.
- 16. https://chrome.google.com/webstore/의 Chrome 확장 콘텐츠 스크립트
- 17. Chrome 확장 프로그램의 콘텐츠 스크립트에서 로컬 스토리지에 액세스
- 18. 콘텐츠 보안 정책에 대한 값이 올바르지 않습니다. Chrome 확장 프로그램
- 19. chrome 확장 프로그램의 콘텐츠 스크립트가 google, youtube 페이지에서 작동하지 않습니다.
- 20. 옵션 사용 가능 콘텐츠 스크립트 백그라운드 페이지가없는 Chrome 확장?
- 21. Chrome 확장 프로그램 : 콘텐츠 스크립트와 background.html 간의 통신
- 22. 젠드 (Zend)에 특정 콘텐츠 유형으로 올리는 방법?
- 23. Chrome 확장 프로그램 : 콘텐츠 스크립트가 이미 탭에로드 된 것을 감지하는 방법은 무엇입니까?
- 24. 사이트 콘텐츠 확장 및 축소
- 25. Sitecore 언어를 제한하는 방법 콘텐츠 트리의 특정 부분에만 쓰기
- 26. 추출 특정 콘텐츠
- 27. 항목 ID는 특정 콘텐츠
- 28. 로드 도메인 특정 콘텐츠
- 29. 레일스 팀 특정 콘텐츠?
- 30. 위치 특정 콘텐츠
콘텐츠 스크립트가 동작을 수행하기 전에 문서가로드 될 때까지 기다리는 이벤트 수신기를 추가하면 어떻게 될까요? 예를 들어,'document.addEventListener ("DOMContentLoaded", function() {do.stuff()};'. – cheeken
이것은 필자가 피하는 것이므로 스크립트가 먼저 실행되어야한다. (문서가로드되기 전에) – spektom
그럴 경우 다른 권장 사항이 없습니다. 행운을 빈다. – cheeken