Обнаружение поддержки VML, помощь в применении предыдущего поста - PullRequest
1 голос
/ 19 января 2010

Я обнаружил следующее в предыдущем посте, но мне нужна помощь с этим:

// 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.

У меня есть некоторые знания javascript, но не этот уровень!

Спасибо.

Ответы [ 2 ]

1 голос
/ 19 января 2010

Вы можете просто позвонить этой функции, предоставленной Google, и она вернет true, если VML поддерживается, и false, если нет. Не забывайте, вам все равно нужно будет добавить xmlns для VML где-то в вашем HTML.

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

Кроме того, я бы рекомендовал использовать кросс-браузерную библиотеку для рисования векторной графики. В этом сообщении есть несколько вариантов: Canvas / SVG / VML Drawing Roundup .

0 голосов
/ 19 января 2010

VML поддерживается только в Internet Explorer (начиная с 5.0) и не поддерживается ни в одном другом браузере.Так что проверки IE должно быть достаточно.Это можно сделать разными способами, например: !! document.namespaces

...