2011-12-02 6 views
4

Google 크롬 차단 플러그인은 명시 적으로 실행을 허용 할 때까지 Java 플러그인을 차단합니다. https://www.google.com/support/chrome/bin/answer.py?answer=1247383&hl=en-USGoogle 크롬 차단 Java 플러그인이 있는지 감지하십시오.

Chrome에서 차단하는 경우 어떻게 자바 스크립트에서 감지 할 수 있습니까?

+0

합니까 크롬은'applet' 요소 또는 대체 HTML의'alt' 속성을 존중? –

+0

잘 모르겠습니다. 나는'applet' 태그를 사용하지 않고,'object' 태그를 사용하여 페이지에 애플릿을 삽입합니다. –

+0

O..K. 너 시도 할 때 무슨 일이 있었 니? –

답변

1

그것은 단지 크롬 클릭 투 플레이 기능을 사용 아니에요 - 파이어 폭스 (자바는 클릭 투 플레이 만든 차단 목록을 통해), 오페라 (터보 모드는 모든 플러그인을 클릭 투 플레이로 만듭니다.) ... 또한 플러그인이 자동으로 실행되는 것을 방지하는 애드온/확장 기능도 있습니다.

그 중 아무 것도 콘텐츠 스크립트에서 클릭 재생 플러그인에 대해 알 수 없습니다. 이상적으로는 문제를 좀 더 일반적인 방법으로 해결하는 것이 이상적입니다. 당신은 설치되지 않는 플러그인을 구별 할 수

정기적으로이 를로드 할 때이 페이지의 스크립트에 플러그인 호출을 가진 스크립팅 또는

  • 의 테스트 중 하나

    • 에 의해 (navigator.plugins 참조) 다른 경우

    ... 그리고 가정 는 "로드 할 수 없습니다 또는 차단되었다" 그 기반으로. 이를 위해 MDN에 best-practices page이 있습니다.

    그 차이는 일반적으로 충분히 양호해야합니다. SoundCloud가 플러그인을 클릭 재생 방식으로 처리하는 방법

  • -1

    답변 정보의 정확성을 향상시키기 위해 2013년 3월 15일 편집

    지원 플러그인의 목록은 navigator 객체의 배열로 볼 수 있습니다 :

    navigator.plugins 
    

    이 API는 non-standard하지만, 모든 현대 브라우저가이를 구현합니다. Internet Explorer 지원은 적어도 IE7로 돌아가지만 이전 버전의 Opera에서는 사용할 수 없습니다.

    navigator.plugins이 기본 구조를 갖는다 :

    PluginArray [ 
        ... 
        Plugin { 
         description: "Java Plug-In 2 for NPAPI Browsers" 
         filename: "JavaAppletPlugin.plugin" 
         length: 17 
         name: "Java Plug-In 2 for NPAPI Browsers" 
        }, 
        ... 
    ] 
    

    여기 navigator.plugins 이상 반복하고, 주어진 문자열에 대한 name 속성을 확인하는 기능이다. 발견되면 true 또는 false을 반환합니다.

    function pluginEnabled(name) { 
        var plugins = navigator.plugins, 
         i = plugins.length, 
         regExp = new RegExp(name, 'i'); 
        while (i--) { 
         if (regExp.test(plugins[i].name)) return true; 
        } 
        return false; 
    } 
    

    그래서 (대소 문자 구분)처럼 사용

    pluginEnabled('java'); 
    pluginEnabled('flash'); 
    
    +1

    는 '플러그인이 설치되지 않았거나 경우에만 알려줍니다 navigator.plugins' 검사합니다. 그것은 여전히로드하는 데 실패 할 수 있습니다, 차단 또는 클릭 투 플레이했고, 그 조건은 콘텐츠 액세스 API를 통해 발견 할 수 없다 얻을. –

    관련 문제