2013-01-14 2 views
1

Chromium Embedded Framework를 사용하여 favicon 웹 사이트를 얻는 방법? 소스 코드를보고 아이콘의 URL을 얻을 수는 있지만 페이스 북과 같은 일부 사이트에서는 표준 절차를 사용하여 favicon을 추가하지 않습니다. 그러면 favicon을 어떻게 얻을 수 있습니까? 감사.Chromium Embedded Framework favicon

답변

4

favicon에 대한 규칙은 모두 Wikipedia 페이지에서 설명합니다.

표준은 문서의 <head> 섹션에 rel 특성이있는 링크 요소를 사용하여 파일 형식, 파일 이름 및 위치를 웹 사이트 디렉토리에 지정할 수 있습니다. 당신은 링크를 찾을 수없는 경우 다음을 사용

<link rel="shortcut icon" href="http://example.com/myicon.ico" /> 

또는

<link rel="icon" type="image/vnd.microsoft.icon" 
    href="http://example.com/image.ico" /> 

:

는이 양식의 link 요소를 들어, <head> 요소 내에, 볼 필요가 루트 디렉토리에서 favicon.ico을 찾으십시오.


페이스 북이 표준을 따르지 않는다고 생각하는 이유는 확실하지 않습니다. 웹 사이트가 브라우저에 파비콘을 얻기 위해 다른 메커니즘을 사용하는 것은 가능하지

<link rel="shortcut icon" 
    href="http://static.ak.fbcdn.net/rsrc.php/yP/r/Ivn-CVe5TGK.ico" /> 

: 난 그냥이 포함 된 FB 페이지를 바라 보았다. 브라우저는 파비콘을 얻기위한 잘 정의 된 규칙을 따릅니다. 웹 사이트가 다른 것을하면, 브라우저는 favicon을 찾지 않을 것입니다. 이 blog entry에서

+0

감사합니다. 그러나 Chromium Embedded Framework에는이 기능을 허용하거나 소스 코드를 살펴 봐야하는 특정 기능이 있습니까? –

+1

그냥 DOM에서 읽을 수 있습니다. 그렇게하는 것이 사소한 일이어야합니다. 원시 HTML을 구문 분석하지 마십시오 !! 추출 할 함수가 있으면 소스 코드를 검색하면 찾을 수 있습니다. –

+0

그러나, 소스 코드에는 favicon의 흔적이 없지만 다른 방법을 찾을 수 있습니다. –

3

가, 크로스 브라우저를위한 가장 좋은 방법은 파비콘을 지원

<link rel="icon" type="image/vnd.microsoft.icon" href="http://www.example.com/image.ico"> <!-- For good browsers. --> 
<link rel="SHORTCUT ICON" href="http://www.example.com/image.ico"/> <!-- For Internet Explorer--> 

첫 번째 링크는 실제 브라우저 용이고 두 번째는, 즉 쓰레기입니다 포함하는 것입니다. 일부 웹 사이트에서는 link 태그에 type="image/x-icon"이 표시됩니다. 이것이 올바른 구현 일 때가 있었지만 image/x-icon은 이제 image/vnd.microsoft.icon으로 대체되었으며 이제는 MIME 유형에 대한 IANA 표준의 일부입니다.

그런데 구형 버전은 하드 코딩 된 /favicon.ico이라는 파일 이름을 찾았습니다. 울트라 안전을 원한다면 favicon의 이름을 favicon.ico으로 지정해야합니다. 물론 도메인이 다른 목적으로 여러 웹 사이트를 호스팅하는 경우에는 도움이되지 않습니다.

참고 : IE에 대한 파비콘을 지원할 필요가없는 경우에, 당신은

<link rel="icon" type="image/png" href="http://www.example.com/image.png"> 
<link rel="icon" type="image/gif" href="http://www.example.com/image.gif"> 
<link rel="icon" type="image/jpeg" href="http://www.example.com/image.jpg"> 
1

CEF1이있다 ... 다음 아래 표시된대로, 당신의 파비콘을 위해 PNG, GIF 및 JPG 형식을 자유롭게 사용할 수 있습니다 페이지에 대한 favicon URL이 변경 될 때마다 호출되는 OnFaviconURLChange이라는 콜백입니다. CEF3 추적기의 this bug에 따르면 CEF3은 아직이 콜백을 지원하지 않습니다.

+0

CEF3에서 파비콘을 얻는 방법에 대한 해결 방법이 있습니까? –

+0

CEF3에서'OnFaviconURLChange'를 사용할 수 있습니다. – starkos

0

클라이언트 처리기와 적어도 CefDisplayHandler를 구현해야합니다. 이 클래스에는 OnFaviconURLChange가 있습니다 (어떤 버전에서 나타나는지는 확실치 않지만, 지점 2357 이상에서는 확실합니다). C++ 프로토 타입은 다음과 같습니다

void OnFaviconURLChange(CefRefPtr<CefBrowser> browser, 
    const std::vector<CefString>& icon_urls); 

icon_urls은 일반적으로 파비콘의 URL 단일 항목 (있는 경우)가 포함되어 있습니다.

보안을 위해 favicon URL을 검사 해보십시오. URL을 HTMLayout 응용 프로그램에만 전달하여 자체 서명 된 https : // 리소스 및 모든 종류의 wininet 보안 오류 (예 : InternetErrorDlg)가 throw되기 시작했음을 발견했습니다. 모든 장소.

관련 문제