2010-01-19 6 views
1

을 적용하는 데 도움이되지만 몇 가지 도움이 필요합니다는, 내가 이전 포스트에서 다음의 발견 이전 게시물

// For VML detection, here's what google maps does (search for "function Xd"): 

function supportsVml() { 
    if (typeof supportsVml.supported == "undefined") { 
    var a = document.body.appendChild(document.createElement('div')); 
    a.innerHTML = '<v:shape id="vml_flag1" adj="1" />'; 
    var b = a.firstChild; 
    b.style.behavior = "url(#default#VML)"; 
    supportsVml.supported = b ? typeof b.adj == "object": true; 
    a.parentNode.removeChild(a); 
    } 
    return supportsVml.supported; 
} 

내가 다른 페이지 때 사용자를 전환하는 코드를 사용하고 싶습니다를 VML은 지원되지 않습니다. alternative.html이라는 페이지로 전환하는 코드를 작성하고 구현하는 방법을 보여줄 수 있습니까?

자바 스크립트에 대한 지식이 있지만이 수준이 아닙니다.

감사합니다.

답변

1

Google에서 제공하는 해당 함수를 호출 할 수 있으며 VML이 지원되면 true를 반환하고 그렇지 않으면 false를 반환합니다. 잊지 마세요. HTML의 xml을 VML에 추가해야합니다.

if (!supportsVml()) 
    window.location = "http://somedomain.com/no-vml.html"; 

또한, 나는 벡터 그래픽을 그리기 위해 크로스 브라우저 라이브러리를 사용하는 것이 좋습니다 것입니다. 이 블로그 게시물에서 선택할 수있는 몇 가지가 있습니다 : Canvas/SVG/VML Drawing Roundup.

+0

감사합니다. 빠른 응답을 얻은 Andy에게 감사드립니다. 작동에 어려움을 겪고 있습니다. 외부 Google 파일에 Google 코드 및 다음 게시물을 게시하는 경우 : function redirectNoVml (if (! supportsVml()) { window.location = "../no-vml.htm"; } } 내 html 페이지의 머리 부분에 redirectNoVml()을 호출하면 이 작업을 수행 하시겠습니까? 감사합니다. – martin

+0

IE에 다음 오류가 표시됩니다. 메시지 : 'document.body'가 null이거나 개체가 아닙니다. – martin

+0

안녕하세요. '' 태그가 아직로드를 완료하지 않아이 오류가 발생합니다. body 태그 뒤에 또는 onload 이벤트에 스크립트를 추가해야합니다. –

0

VML은 Internet Explorer (5.0 이상)에서만 지원되며 다른 브라우저에서는 지원되지 않습니다. 따라서 IE를 확인하는 것만으로 충분합니다. 이것은 여러 가지 방법으로 할 수 있습니다. 예를 들면 다음과 같습니다 : !! document.namespaces

+0

현재 VML이 지원되지 않는 IE의 사용자 정의 설치가 있다고 생각합니다. 또한 IE로 표시되는 브라우저가 지원되지 않을 수 있습니다. – martin

+0

ie =! - [1,]을 사용하여 Trident를 확인하십시오. 커스텀 설치에 관해서는, VML이 브라우저의 일부분이 될 수 있다는 점에 대해서는 의심 스럽습니다. –

+0

흥미롭게도 필자는 VML에 관한 Microsoft 직원 (Desktop Gadgets 팀의 직원)과 토론을했으며 IE 에서조차도 그에 의존하지 말라고 조언했습니다. VML과 같은 기능은 그대로두고 그냥 사용하지 않기 때문에 나는 이상한 코멘트라고 생각했습니다. –

관련 문제