Динамическая регистрация поведения VML в IE7

Я пытаюсь нарисовать некоторые фигуры в IE7, и я пытаюсь сделать это полностью с помощью JavaScript. Во-первых, я регистрирую пространство имен v следующим образом.

document.getElementsByTagName('html')[0].setAttribute('xmlns:v', 'urn:schemas-microsoft-com:vml');

и я вижу, что он добавлен правильно. Затем я пытаюсь добавить элемент style и задать поведение VML для элементов следующим образом:

var vstyle = document.createElement('style');
vstyle.innerHTML = 'v\:* {behavior: url(#default#VML);}}';  // Unknown runtime error
document.getElementsByTagName('head')[0].appendChild(vstyle);

Я получаю Unknown runtime error во второй строке в IE6 и IE7. В чем может быть проблема? Не поддерживается ли innerHTML? Есть ли другой трюк, чтобы сделать это?


person ali    schedule 20.08.2013    source источник


Ответы (1)


Вы можете создать таблицу стилей для VML, используя приведенный ниже код.

document.namespaces.add("v","urn:schemas-microsoft-com:vml");
var style = document.createStyleSheet();
style.addRule('v\\:*', "behavior: url(#default#VML);");

Этот код будет работать в IE 7 и выше, но я не тестировал в IE 6.

person vjy    schedule 22.08.2013