북마크릿을 툴바로 드래그 할 때 파비콘 / 아이콘을 설정하는 방법은 무엇입니까?


108

북마크릿을 만들었고 제대로 작동하지만 Opera 나 Firefox의 툴바에 추가되면 브라우저의 기본 북마크 아이콘 (각각 지구본과 별표)을 사용합니다. 내 사이트에는 파비콘이 있고 창, 탭, 심지어 [사이트] 북마크는 내가 지정한 파비콘을 사용합니다. 내 북마크릿이 아닙니다.

북마크릿이 파비콘도 가져 오도록 내 사이트 또는 북마크릿을 코딩하려면 어떻게해야합니까?

사용자가 사후에 파비콘을 설정하는 데 사용할 수있는 다양한 수동 해커 기술을 알고 있지만 이는 바람직하지 않은 솔루션입니다.


예 : 오페라의 북마크를 드래그하는 것은 Diigo 페이 아이콘을 적용하려면 북마크를 발생합니다 diigo.com/tools/diigolet
Pistos

링크하는 사람은 firefox에서 나를 위해 그렇게하지 않습니다.
benlumley

네, IE에서도 마찬가지입니다. 그러나 그것은 Opera에서합니다. :)
Pistos

죄송합니다. 방금 Opear 9.6을 사용해 보았는데 Opera에서도 작동하지 않습니다.
Guss

1
여기에 해결책에 대한 제안이 있습니다 : wiki.whatwg.org/wiki/Link_Icons
lapo

답변:


23

북마크릿은 javascript://스키마를 사용하므로 파비콘을로드 할 수있는 도메인이 없습니다.

따라서 현재 북마크릿에 파비콘을 제공 할 방법이 없습니다. 다음과 같이 생각해보십시오. Javascript 샌드 박스 전체를 기억하십시오. Javascript가 실행중인 웹 페이지의 도메인 외부에있는 어떤 것도 액세스하지 못할 수 있습니다. 현재보고있는 페이지의 모든 도메인에 연결되어야하는 북마크릿은 웹 사이트의 파비콘에도 연결될 수 없습니다.

업데이트 : Hans Schmucker의 답변에 따르면 브라우저가 북마크 메뉴에로드하면 파비콘이있는 HTML 문서를 생성하는 북마크릿을 만들 수 있습니다. 추론은 효과가있는 것처럼 보이지만 아직 이와 같은 행동을 보지 못했고 테스트 결과가 부정적이었습니다.


17

이를 수행하는 방법은 다음과 같습니다.

  1. 북마크를 북마크 바로 드래그하세요.
  2. 그 옆에 북마크릿에 사용할 파비콘이있는 사이트의 북마크를 만듭니다.
  3. 북마크 관리자를 열고 구성 드롭 다운을 클릭 한 다음 내보내기를 선택하고 북마크를 html 파일로 저장합니다.
  4. 텍스트 편집기에서 해당 html 파일을 엽니 다.
  5. 방금 만든 북마크 를 찾고 Gmail 북마크라고 말하면 다음과 같은 html 코드가 있어야합니다.

<DT><A HREF="http://mail.google.com/mail/u/0/#inbox" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABV0lEQVQ4jdWQzUoCYRiFnxl/0plso0IKX7mqXWCLIlq0qEW4d19Qi6BLCELwEgpvQbyAVrroCrSNUJFGAyrkEEEMNs5PCxtRHGsZneX7nedwzgd/LQngObfnykIQOj9Disd/BFxdZ3hVwtE0Mje3kuw9OJqGWSji1BtzYafeGHk0jTdzCIA8aXANA/O6hFWuzMBWuYJ5XcI1DF6MAY8fxmxAYHdnZK7WMAtFXF3H1XXMQhGrWsN2XR5WM/QGn2MmOBkQOj5CFoJhuTKe5DUzbJvW1jbWZhbqd/4BAIGDfSQhGH7XBehLMlruEGlFzEyTZy6AvL5G+PICWQja6iJaPu8L+zbw9B4MYpyeEB4MkF7782z+AZ1OD0WNkk4vA7AUi/HUav8eYNsOnW6XZCJBJLIwvieTcVQ1SrN5j2XbUwFTf9DpdkmnUlOwJ0VRyGY3UBVl7px/qi+cdYQvZvKCUwAAAABJRU5ErkJggg==">Gmail</A>

  1. 전체 ICON 태그 복사
  2. 동일한 파일에서 생성 한 북마크릿을 찾고 복사 한 ICON 태그를 북마크릿 태그에 삽입합니다 .

<DT><A HREF="javascript:(function(){... bookmarklet JS code...})();" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABV0lEQVQ4jdWQzUoCYRiFnxl/0plso0IKX7mqXWCLIlq0qEW4d19Qi6BLCELwEgpvQbyAVrroCrSNUJFGAyrkEEEMNs5PCxtRHGsZneX7nedwzgd/LQngObfnykIQOj9Disd/BFxdZ3hVwtE0Mje3kuw9OJqGWSji1BtzYafeGHk0jTdzCIA8aXANA/O6hFWuzMBWuYJ5XcI1DF6MAY8fxmxAYHdnZK7WMAtFXF3H1XXMQhGrWsN2XR5WM/QGn2MmOBkQOj5CFoJhuTKe5DUzbJvW1jbWZhbqd/4BAIGDfSQhGH7XBehLMlruEGlFzEyTZy6AvL5G+PICWQja6iJaPu8L+zbw9B4MYpyeEB4MkF7782z+AZ1OD0WNkk4vA7AUi/HUav8eYNsOnW6XZCJBJLIwvieTcVQ1SrN5j2XbUwFTf9DpdkmnUlOwJ0VRyGY3UBVl7px/qi+cdYQvZvKCUwAAAABJRU5ErkJggg==">MyBookmarklet</A>

  1. 이 파일 저장
  2. Chrom 북마크 관리자로 돌아가서 다시 구성을 클릭하고 가져 오기를 선택합니다.
  3. 방금 편집 한 HTML 파일을 가져 오면 북마크릿에 파비콘이 생깁니다 .

기본적으로 절차는 아이콘 속성을 얻는 것입니다 북마크 태그 및 삽입 북마크 태그

여기에 이미지 설명 입력


1
(이것은 매우 오래된 질문이지만 ...) 최종 사용자의 작업이 전혀 필요하지 않은 솔루션을 찾고있었습니다 (도구 모음에 북마크릿을 추가하는 것 제외). 즉, 사이트 소유자가 아이콘을 지정하기 위해 할 수있는 작업.
Pistos 2016

1
저에게는 이것이 최선의 답변입니다. 작동하며 포괄적으로 설명됩니다. 대단히 감사합니다.
tsuma534

13

정답이 아닙니다. 북마크릿에는 도메인이 없지만 위치 (북마크릿 자체)가 있으며 여기에 아이콘을 할당 할 수 있습니다. 그 후에는 브라우저가 아이콘을 저장하는 방법이 중요합니다 (Firefox는 북마크 아이콘을 영구적으로 저장하므로 다른 브라우저에서는 운이 좋지 않을 수 있습니다).

PS Security는 그 안에서 작동하지 않으며 아이콘은 어디에서나 올 수 있습니다. 제한이 없습니다.

참조 http://www.tapper-ware.net/blog/?p=97를


3
추론은 효과가있는 것처럼 들리지만, 링크 한 블로그에 제공된 예제는 Firefox가 책갈피에 대해 표시하거나 표시하지 않을 수있는 아이콘이있는 문서를 생성하거나 실제로 임의의 페이지에서 Javascript를 실행하는 책갈피입니다. 둘 다 (Firefox 7에서 테스트 됨). 나는 아직도이 일을 확신하지 못한다.
Guss 2011 년

13

tapper [ware]와 Restafarian 사이트를 읽은 후, 제가 생각해 낼 수있는 가장 간단한 해결책은 다음과 같습니다.

<a href="javascript:

var title = window.location.href;

if (title.indexOf('http://yourwebsite/bookmarklet/') == 0) {
    '<head><link rel=\'shortcut icon\' href=\'favicon.ico\'></head>Bookmarklet';
} else {
    (function(){document.body.appendChild(document.createElement('script')).src='http://yourwebsite/bookmarklet.js';})();
}">Click Me!</a>

Chrome 및 FF에서 잘 작동하지만 FF4는 북마크 바에 아이콘을 저장하는 유일한 브라우저입니다. 다음과 같이 표시됩니다. http://cl.ly/5WNR


북마크릿에 대해 더 배우려고하는데, 초보자들에게 코드를 조금 설명해 주시겠습니까? 감사합니다
Andrew Mackenzie

확실한. 클릭하면 현재 페이지의 URL을 확인합니다. 북마크릿이 '호스팅'되는 페이지 (4 행)에있는 경우 원하는 파비콘을 가리키는 페이지에 링크 요소를 씁니다. 브라우저에서 이것을보고 파비콘을 다운로드합니다. 브라우저는 이것을 캐시하고 북마크 바의 아이콘을 사용합니다. 다른 페이지에있는 경우 북마크릿이 수행해야하는 작업을 수행합니다.
Brian McAllister 2012

5
나는 이것을 이해하지 못한다. 북마크릿을 즐겨 찾기 표시 줄로 끌면 ( 여기에 있는 Delicious 북마크릿과 마찬가지로 )이 코드를 실행하는 것은 무엇입니까? 북마크릿이 즐겨 찾기 표시 줄에 저장 될 때까지 (예 : 브라우저가 아이콘에 정착 한 후) 왜 북마크릿이 클릭되고 코드가 실행되는지 알 수 없습니다.
dumbledad

6

여기에 당신이 원하는 것을 거의 할 수있는 좋은 기술이 있습니다.

내 Mac에서 잘 작동하지만 Windows 7⃣에서는 작동하지 못했습니다 .❌

"Emoji"🈳를 사용하십시오. 그들은 유니 코드 문자로, 화려한 아이콘처럼 보입니다. 미리 정의 된 이미지 목록에서만 선택할 수 있지만 실제로하려는 모든 작업은 북마크릿이 수행하는 작업을 상기시키기 위해 사용자에게 볼 수있는 것을 제공하는 것뿐입니다.

예를 들어 "보안 키"북마크릿을 만들고 있습니다 📖. 그래서 북마크릿 이름에 🔑을 사용합니다! 😃😊

따라서 기본적으로 북마크 바에 이미지 🎑이 표시됩니다 .😝

이 사이트를 사용하여 북마크릿에 적합한 이모티콘을 찾을 수 있습니다. http://emojipedia.org/symbols/


1
"글꼴에이 코드 포인트에 대한 글리프가 없습니다"라는 표시가 나타납니다. Linux에서 Firefox를 사용하고 있다는 점을 감안하면 대체 동작이 시스템의 어떤 글꼴 에서도 찾을 수 없다는 것을 의미합니다 . 블로거가 웹 디자이너에게 피하라고 말한 Mac 전용 이모티콘 글리프라고 추측하는 것이 맞습니까?
ssokolow

네. 그러나 클라이언트가 이모티콘을 표시 할 수있는 컴퓨터에서 실행중인 것을 알고 있다면 이모티콘을 표시하는 것이 그렇게 나쁜가요? 개인적으로 사용하기 위해 사용자가 이모티콘을 출력할지 여부를 결정할 수 있습니다. 그렇지 않으면 출력하지 않고 일반 텍스트 만 가져옵니다.
Theo

그것을 사용하는 웹 디자이너의 수많은 실패를 넘어 설 수있는 솔루션 인 것 외에도 누군가 필연적으로 내가 비 Mac 시스템에서 빌드 한 것을로드 할 때 (만약) 내가 만들 수있는 나쁜 인상을 위험에 빠뜨리지 않을 것입니다.
ssokolow 2012-08-20

부분적으로는 실용적인 목적으로, 부분적으로는 엔터테인먼트 가치로 찬성합니다. 이모티콘은 삶의 모든 문제에 대한 답입니다!
Sridhar Sarnobat

도움말 :이 사이트를 사용하여 필요한 그림 이모티콘을 복사하여 붙여 넣으 세요 . emojipedia.org/upwards-black-arrow .
Sridhar Sarnobat

4

를 기반으로 Wizek의 제안 당신은 데이터 URI에 코드를 넣을 수 있습니다.

data:text/html;charset=utf-8,
<html>
<link rel="shortcut icon" href="https://stackoverflow.com/favicon.ico">
<script type="text/javascript">
    alert('It works!')
</script></html>

그리고 그 모든 것을 북마크로 저장하십시오. (사용 해보세요! 코드를 탭 표시 줄로 드래그하세요)

불행히도 특정 경우에만 작동합니다 (아래 참조).

작동 원리 :

(적어도 Chrome에서는) javascript: "<html>...your html code here, including a javascript tag that will run when loaded...</html>"다른 솔루션이 제안한 형식을 사용하는 북마크릿과 유사합니다 . 이 경우 현재 페이지 의 html이 북마크릿의 html 로 대체 되지만 위치는 동일하게 유지 되고 북마크릿 자체에는 여전히 위치가 없으므로 Chrome에서 파비콘을 저장할 수 없습니다.

반대로 data-uri 북마크 를 사용하면 다른 페이지로 이동하여 자체 위치가 있고 브라우저가 파비콘을 저장할 수 있습니다. 북마크를 동기화하면 다른 컴퓨터에서 액세스 할 수있는 "브라우저에서 웹 사이트 호스팅"이라고 생각하세요. 모든 것을 로컬로 유지하려면 URL 대신 favicon에 base64 이미지를 사용할 수도 있습니다.

한계가 있습니다.

  • 클릭하면 현재 페이지를 떠나 데이터에 페이지를로드합니다 . 따라서 현재 페이지와 상호 작용하는 소책자에는 사용할 수 없으며 다른 페이지에서 실행할 수있는 코드에만 사용할 수 있습니다.

  • 주석에 //를 사용하지 마십시오. 모두 한 줄에 저장되므로 / ** /로 감싸고 세미콜론을 잊지 마세요.

  • FF에서는 파비콘을 저장했지만 window.open ()을 사용하려면 항상 팝업 창을 열도록 설정할 수 없었습니다. 데이터 URL에 대한 기본 동작을 저장할 수 없기 때문입니다.


예로서:

이 기술을 사용하여 작은 Bookmarklet With Icon Generator를 만들었습니다. 이 코드를 URL 표시 줄로 드래그 (또는 북마크로 저장)하여 사용할 수 있습니다. 코드와 아이콘을위한 입력 영역이있는 간단한 페이지로, 아이콘이있는 북마크릿을 생성합니다.

data:text/html;charset=utf-8,<html><head>
    <title>Bookmarklet With Icon Generator</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" ></script>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" >
    <link rel="shortcut icon" href="https://www.freefavicon.com/freefavicons/objects/plain-thumbs-up-152-237293.png">
</head>
<body>
    <div class="container">
        <div class="page-header">
            <h2>Write your javascript  and specify a favicon, then drag the button to your bookmarks bar</div>
                </h2>
        <a id="bookmarkbutton" href='' ondragend='this.click()' draggable="true" class="btn btn-primary btn-lg" role="button"> 
            Drag me to your bookmarks bar! </a><br /><br />
        <div> 
            <label for="fav_href">Favicon:</label>
            <input id="fav_href" value='https://stackoverflow.com/favicon.ico' style='width:100%'></input> </div><br />
        <div>
            <label for='ta'>Write your JavaScript below</label>
            <textarea id="ta" style="width:100%;height:50%">
setTimeout(()=>{            &%2313
    alert('hello world');   /*Use this format for comments, use %2523 instead of hash (number sign)*/ &%2313
    window.history.back();  &%2313
},200);
            </textarea></div>
  </div>
    <script type = "text/javascript">
        fav_href.onchange = ta.onchange = function(){
            bookmarkbutton.href = 'data:text/html;charset=utf-8,<html><head>'+
                '<link rel="shortcut icon" href="'+ fav_href.value +'">'+
                '<script type="text/javascript"> '+ ta.value +'<\/script>';
            };
        ta.onchange();
    </script>
</body>

또 다른 예 : 자체 작은 창에서 Facebook 메신저를 여는 북마크릿 (브라우저가 기본적으로 팝업을 차단하는 경우 작동하지 않을 수 있음)

data:text/html;charset=utf-8,
<html>
    <link rel="shortcut icon" href="https://facebook.com/images/messengerdotcom/favicon/favicon.ico">
    <script type="text/javascript">
        url = 'https://www.messenger.com/';
        w = 740; h = 700;
        x = parseInt( screen.availWidth/2 - w/2 );
        y = parseInt( screen.availHeight/2 - h/2 );
        nw = window.open(url,'', 'width='+ w +',height='+ h +',top='+ y +',left='+ x);
        nw.focus();
        setTimeout(()=>{ 
          window.history.back();
          window.close();  
        },200);
    </script>

북마크릿 아이콘을 얻기위한 기타 Chrome 해결 방법 :

  • 이 답변 /superuser/212722/how-can-i-add-a-favicon-to-a-bookmarklet-in-에 설명 된대로 북마크 바 내보내기, 편집 및 다시 가져 오기 구글 크롬

  • 북마크릿을 확장 기능으로 전환합니다. 더 이상 북마크릿이 아니지만 동일한 기능을 갖습니다. 다음은 http://sandbox.self.li/bookmarklet-to-extension/ 을 수행하는 간단한 웹 사이트입니다 . 아이콘 파일을 원하는대로 변경하면됩니다. 이것의 단점은 확장 프로그램이 램을 사용한다는 것입니다 (단순한 것의 경우 약 10MB?). 램이 많고 적은 경우 솔루션이 아닐 수도 있습니다. 또한 북마크와 같은 텍스트가 아니라 아이콘 만 표시됩니다.


1
이것은 Chrome 및 Safari에서만 작동합니다. 불행히도 Mozilla가 아닙니다. 북마크릿의 의도는 크로스 브라우저 인 IMO입니다.
sijpkes

이것은 효과가 있었던 유일한 것과 같습니다. 이런 소, 정말 감사합니다.
Alex Beals 2018

3

javascript와 canvas를 사용하여 favicon을 favicon에 할당하고 수정할 수 있습니다 (놀라운 favicon 게임 Defender of the Favicon 참조 ). 게임의 소스 코드는 그렇게하는 데 도움이 될 것입니다 (기본적으로 소스의 554 행에서 볼 수 있듯이 캔버스의 toDataUrl () 함수 사용에 의존합니다).

// set favicon
if( !stupidBrowser && useIcon )
{
     var    icon=$('favicon');
     (newIcon = icon.cloneNode(true)).setAttribute('href',ctx.canvas.toDataURL());
     icon.parentNode.replaceChild(newIcon,icon);
}

이 방법으로 파비콘을 설정하는 소책자를 클릭하거나 저장하면 어떻게됩니까? 잘 모르겠지만 한 번 시도해 보면 좋을 것 같습니다. 브라우저가 그것을 저장할 수 있습니까?


1
(Chrome에서 테스트 됨) 해결책이 없습니다. 소책자를 사용하여 파비콘을 변경해도 여전히 같은 위치에 있습니다. 브라우저는 현재 페이지의 책갈피 아이콘을 변경할 수 있지만 소책자에 하나를 할당하지 않습니다.
aljgom

1

가능한 방법은 아이콘과 같은 북마크릿 앵커에서 유니 코드 문자를 사용하는 것이라고 생각합니다.

http://unicode-table.com/en/#cyrillic

가능한 모든 기호를 살펴보면 원하는 아이콘과 더 유사한 문자를 찾을 수 있습니다.


1

따라서 이것은 아직 완전한 해결책은 아니지만 작업 방향으로 나아가는 단계 일 수 있습니다.

data:data:놀랍게도 -uri 인코딩 html 에서 아이콘 인코딩이 작동합니다.

data:text/html;charset=utf-8, <title>Separator Tab</title><link rel="shortcut icon" href="data:image/png;base64,AAABAAEAEBAAAAEAIAAoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/5aWlv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP+Wlpb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/lpaW/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/5aWlv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP+Wlpb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/lpaW/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/5aWlv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP+Wlpb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/lpaW/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/5aWlv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP+Wlpb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/lpaW/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/5aWlv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACWlpb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" /> Separator Tab

이것이이므로 <html>우리도 <script type="javascript">거기에 뛰어 들 수 있습니다.

일부 북마크릿의 경우 이것은 이미 충분할 수 있습니다. 현재 페이지를 수정하거나 적어도 새 탭을 열기 전에 정보를 얻고 싶은 다른 사람들에게는 운이 좋지 않습니다. 그렇게하는 방법을 찾으면이 답변을 업데이트하겠습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.