2011-02-03 5 views
1

NPAPI 플러그인이 있는데 웹 페이지에 삽입하기 전에 버전을 감지하고 싶습니다. 버전이 최신 버전이 아닌 경우 사용자에게 플러그인을 업데이트하라는 메시지를 표시하려고합니다.Chrome 브라우저에서 플러그인 버전 감지

는 이제이 문제는 navigator.plugins["myplugin"].version 파이어 폭스에서 잘하지만 크롬에서 작동되는 다음과 같은 방법

if (navigator.mimeTypes && navigator.mimeTypes["application/myplugin"]) { 
{ 
    // some code here 

    if(navigator.plugins["myplugin"] && navigator.plugins["myplugin"].version >= latest_version) { 
     // we have the latest version (embed the plugin into web page) 
     document.write ("<object id='plugin'><embed ....></object>"); 
    } else { 
     document.write ("Show message here"); 
    } 

    // some code 
} 

에서 구현합니다. Chrome은 version 속성을 노출하지 않습니다. 내 속성을 NPAPI 코드에 추가 할 수 있지만 플러그인을 페이지에 삽입하기 전에 사용할 수있는 방법이 표시되지 않습니다.

해결 방법이 있습니까? 사전에

감사합니다, 앤드류

답변

1

나는 플러그인의 많은 이름 또는 설명 중 하나의 버전 정보를 참조하십시오. 임베드되기 전에 해당 정보에 액세스 할 수 있어야합니다.

+0

예, Silverlight와 같이 설명에 버전 번호를 넣을 것을 생각했습니다. 그러나 나는 더 우아한 방법을 찾고 싶었 :-) 어쨌든, 당신의 충고에 감사드립니다. – DReJ

+0

그게 최선의 방법입니다. Safari는 똑같은 일을하지만, 이것이 웹킷 문제라고 생각합니다. –

+0

예, 설명에 플러그인 버전을 설정해야합니다. 도와 주셔서 감사합니다. – DReJ

1

실제로 이름이나 설명이 아닌 파일 이름에 버전 번호를 넣습니다. 그 이유는 동일한 이름, 설명 및 MIME 형식을 가진 여러 플러그인이있는 경우 Firefox는 일반적으로 최신 버전을 사용하기 때문입니다. 파이어 폭스의 구버전은 어떻게 처리 하는가에있어서 일관성이 없기 때문에 np ??? _ version.dll 파일을 버전 별 하위 디렉토리에 넣기까지한다.

약간의 고통이지만 모든 NPAPI 브라우저에서 일관되게 동일한 방식으로 작동합니다.

+0

조언을 해주셔서 감사합니다.하지만 시스템의 플러그인 버전이 하나 뿐이므로 모든 릴리스의 플러그인 이름을 변경하고 플러그인 "지옥"을 만들지는 않습니다. – DReJ

+0

그것이 중요한 부분입니다. 플러그인 이름을 변경하지 않으면 파일 이름이 변경됩니다. 당연히 당신은 단지 시스템에있는 플러그인의 한가지 버전에 대해서만 갈 수 있습니다. 그러나 당신이 업그레이드 할 때 브라우저에 의해 쉽게 열리면 그것을 삭제할 수 없습니다. – taxilian

0

버전이 포함 된 플러그인의 JSAPI 속성을 만들 수 있습니다. 이 속성은 javascript에서 호출 될 때 플러그인의 버전을 반환합니다. 따라서 페이지에 플러그인을 삽입/삽입하려고하면 javascript를 통해 해당 호출을 확인할 수 있습니다.

관련 문제