북마크렛

Bookmarklet
A Firefox browser with a dialog reading "There are about 2502 words on this page."
페이지의 단어 수를 세는 북마크릿 시연입니다.표시된 브라우저는 Windows 10에서 실행되고 있는 Firefox 65.0.2입니다.

북마클릿은 브라우저에 새로운 기능을 추가하는 JavaScript 명령을 포함하는 웹 브라우저에 저장된 북마크입니다.웹 브라우저에 북마크 URL 또는 웹 페이지에 하이퍼링크로 저장됩니다.북마클릿은 보통 사용자가 클릭할 때 실행되는 JavaScript의 작은 조각입니다.북마클릿을 클릭하면 선택한 텍스트에서 검색 쿼리를 실행하거나 표에서 데이터를 추출하는 등 다양한 작업을 수행할 수 있습니다.

북마크렛의 또 다른 이름은 favelet 또는 favlet으로 즐겨찾기(북마크의 [1]동의어)에서 파생되었습니다.

역사

bookmarklets.com의 Steve Kangas는 Netscape의 JavaScript [3]가이드의 제안을 바탕으로 짧은 스크립트를 만들기 시작했을 때 bookmarklet이라는[2] 단어를 만들었다.그 전에 Tantek çç는 이러한 스크립트를 페이블렛이라고 부르며 2001년 9월 6일(개인[clarification needed] 이메일)에 이 단어를 사용했습니다.Netscape에서 JavaScript를 개발한 Brendan Eich는 북마크렛의 기원에 대해 다음과 같이 설명했다.

그런 의미에서 그것들은 의도적인 특징이었다.제가 발명한 것은javascript:1995년 JavaScript와 함께 다음과 같은 URL을 작성했습니다.javascript:URL은 북마크 가능 등 다른 종류의 URL로 사용할 수 있습니다.특히 로드하여 새로운 문서를 생성할 수 있도록 하였습니다.javascript:'hello, world'또한 (북마크렛의 키)는 현재 문서의 DOM에 대해 임의의 스크립트를 실행합니다.javascript:alert(document.links[0].href)다른 점은 후자의 URL은 JS의 미정의 타입으로 평가되는 식을 사용한다는 것입니다.Netscape 2가 출하되기 전에 void 연산자를 JS에 추가하여 정의되지 않은 값을 쉽게 폐기할 수 있도록 했습니다.javascript:URL 입니다.

--

웹 사이트에서 CSP(Content Security Policy)의 구현이 증가함에 따라 북마크릿 실행 및 사용(2013-2015)[5]에 문제가 발생했으며, 일부에서는 북마크렛의 [6][7]종말 또는 종말에 영향을 미칠 수 있다는 의견도 있습니다.William Donnelly는 2015년 초에 Greasemonkey 사용자 스크립트(Firefox/Pale Moon 브라우저 애드온 확장)와 간단한 북마크렛 사용자 스크립트 통신 [8]프로토콜을 사용하여 이 문제에 대한 해결 방법(JavaScript 라이브러리 코드 로드, 참조 및 사용)을 만들었습니다.CSP를 사용하는 웹 사이트 및 https:// URI 방식을 사용하는 웹 사이트를 포함하여 모든 웹 사이트에서 (라이브러리 기반) 북마클릿을 실행할 수 있습니다.단, 브라우저가 CSP를 사용한 인라인스크립트 실행을 비활성화/허용하지 않도록 지원하는 경우 및 웹사이트가 이 기능을 구현하기 시작하면 이 "수정"이 "해당"됩니다.

개념.

웹 브라우저는 URI를 사용하여href의 속성<a>태그 및 북마크의 경우.다음과 같은 URI 스킴http:,file:, 또는ftp:는 나머지 문자열의 프로토콜 및 형식을 지정합니다.브라우저는 프리픽스도 구현합니다.javascript:다른 URI와 마찬가지로 파서에 대해서도 마찬가지입니다.내부적으로 브라우저는 지정된 프로토콜이 javascript임을 확인하고 문자열의 나머지 부분을 JavaScript 어플리케이션으로 처리하여 실행한 후 생성된 문자열을 새 페이지로 사용합니다.

실행 중인 스크립트는 현재 페이지에 액세스할 수 있으며, 이 페이지를 검사하고 변경할 수 있습니다.스크립트가 정의되지 않은 유형(예를 들어 문자열이 아닌)을 반환하는 경우 브라우저는 새 페이지를 로드하지 않고 스크립트는 현재 페이지 콘텐츠에 대해 실행됩니다.그러면 페이지 새로고침 없이 내부 글꼴 크기 및 색상 변경 등의 변경이 가능합니다.

값을 반환하지 않거나 함수를 정의하는 등의 어나니머스 함수를 사용하여 스크립트가 정의되지 않은 유형을 반환하도록 할 수 있습니다.

자바스크립트:(기능.(s){   //정의되지 않은 유형을 반환하는 문(예: 할당) })(); 

단, 스크립트에 다음과 같은 함수 정의/재정의가 포함되어 있는 경우function Use_this_globally(){...}환경에는 데이터가 입력되지 않습니다.이 때문에,{arbitrary script}로 감싸야 합니다.

자바스크립트:무효({자의적인 대본}); 

사용.

북마클릿은 저장되고 일반 북마크로 사용됩니다.따라서 브라우저에 기능을 추가하는 단순한 "원클릭" 도구입니다.예를 들어 다음과 같은 것이 있습니다.

  • 브라우저 내 웹 페이지 모양 변경(글꼴 크기, 배경색 변경 등)
  • 웹 페이지에서 데이터 추출(하이퍼링크, 이미지, 텍스트 등)
  • 검색 결과(예: Google)에서 리다이렉트를 제거하여 실제 대상[9] URL을 표시합니다.
  • 현재 페이지를 Posterous 등의 블로그 서비스, bit.ly 등의 링크 단축 서비스 또는 Delicious 등의 북마크 서비스에 제출합니다.
  • 강조 표시된 텍스트 또는 대화 상자를 사용하여 검색 엔진 또는 온라인 백과사전 쿼리
  • 현재 페이지를 링크 검증 서비스 또는 번역 서비스에 제출합니다.
  • 페이지 자체에서 이 작업을 수행할 수 없는 경우 일반적으로 선택되는 구성 옵션 설정
  • 속도, 위치, 전환 루프, 표시/숨김 재생 컨트롤 등의 HTML5 오디오 및 비디오 재생 파라미터를 제어합니다.첫 번째 파라미터는 HTML5 플레이어의 일반적인 범위 [10][11][12]설정 이상으로 조정할 수 있습니다.

인스톨

북마클릿의 「설치」는, 새로운 북마클릿을 작성해, 코드를 URL 행선지 필드에 붙여 넣는 것으로 행해집니다.또는 북마클릿이 링크로 표시되는 경우 일부 브라우저에서 북마클릿을 책갈피 줄에 끌어다 놓을 수 있습니다.그런 다음 북마크를 정상적으로 로드하여 북마클릿을 실행할 수 있습니다.

예

이 북마클릿 예에서는 웹 브라우저 창에서 강조 표시된 텍스트에 대해 Wikipedia 검색을 수행합니다.일반적으로 다음 JavaScript 코드가 브라우저[13] 북마크 도구 모음의 북마크에 설치됩니다.이후 텍스트를 선택한 후 북마클릿을 누르면 검색이 수행됩니다.

자바스크립트:(기능.(문서) { 기능. 인식하다(d) {     돌아가다 d.선택. ? d.선택..create Range(1).본문 : d.선택 항목 가져오기(1) }  d = 인식하다(문서);  위해서 (i=0; i< >프레임.길이 & & (d==문서    d=='실패'); i++) d = 인식하다(프레임[i].문서);  한다면 (s    d=='실패') d = 신속한('%20 검색%20 조건%20 for %20 입력'위키피디아','');  열다.('https://en.wikipedia.org' + (s ? '/w/index.php?title=특수:검색 및 검색=' + encodeURIC 컴포넌트(s) : '')).초점(); })(); 

레퍼런스

  1. ^ Jonathan Avila (2014-03-02). "How to create a favlet for accessibility testing".
  2. ^ 도메인 bookmarklets.com Wayback Machine에서 2009-07-07 아카이브 완료1998년 4월 9일
  3. ^ "Activating JavaScript Commands From the Personal Toolbar". What's New in JavaScript 1.2. Netscape Communications Corporation. 1997. Archived from the original on 2002-06-11.
  4. ^ Willison, Simon (April 10, 2004). "Email from Brendan Eich". SitePoint. Retrieved September 26, 2014.
  5. ^ "Bug 866522 - Bookmarklets affected by CSP".
  6. ^ "Bookmarklets are Dead". 23 October 2014.
  7. ^ "The Slow Death of Bookmarklets". 16 November 2012.
  8. ^ "The Resurrection of Bookmarklets".
  9. ^ Ruderman, Jesse. "Bookmarklets for Zapping Annoyances". Jesse's Bookmarklets Site. Retrieved 29 March 2013.
  10. ^ "YouTube Video Speed Bookmarklets". sgeos.github.io. 2017-10-29.
  11. ^ Kant, Kushal (23 August 2017). "How to Use Parameters in HTML5 Video Tags/Attributes". findnerd.
  12. ^ "HTML video Tag". www.w3schools.com.
  13. ^ Mozilla Firefox, Opera, Safari 및 Chrome에서 테스트.IE7 또는 IE8에서는 동작하지 않습니다.원본 소스:알렉스 볼드

외부 링크