Как Вы обнаруживаете поддержку VML или SVG в браузере

Вы не можете удалить конец строки, так как File.WriteAllLines автоматически добавляет его, однако вы можете использовать этот метод:

public static void WriteAllLinesBetter(string path, params string[] lines)
{
    if (path == null)
        throw new ArgumentNullException("path");
    if (lines == null)
        throw new ArgumentNullException("lines");

    using (var stream = File.OpenWrite(path))
    using (StreamWriter writer = new StreamWriter(stream))
    {
        if (lines.Length > 0)
        {
            for (int i = 0; i < lines.Length - 1; i++)
            {
                writer.WriteLine(lines[i]);
            }
            writer.Write(lines[lines.Length - 1]);
        }
    }
}

Это не мое, я нашел его в .NET File.WriteAllLines оставляет пустую строку в конце файла

60
задан Crescent Fresh 17 March 2009 в 17:40
поделиться

3 ответа

Для обнаружения VML вот то, что карты Google делают (поиск" 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
}

я вижу то, что Вы имеете в виду о FF: это позволяет произвольным элементам быть созданными, включая vml элементы (<v:shape>). Похоже, что это - тест для атрибут смежности , который может определить, интерпретируется ли созданный элемент действительно как объект vml.

Для обнаружения SVG, это работает приятно:

function supportsSvg() {
    return document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Shape", "1.0")
}
39
ответ дан Crescent Fresh 7 November 2019 в 14:03
поделиться

Я предложил бы одну тонкую настройку ответу crescentfresh - использование

document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1")

вместо

document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Shape", "1.0")

обнаружить SVG. WebKit в настоящее время очень требователен в отношении создания отчетов о функциях и возвращает false для feature#Shape несмотря на наличие относительно основательной поддержки SVG. feature#BasicStructure альтернатива предлагается в комментариях https://bugs.webkit.org/show_bug.cgi? id=17400 и дает мне ответы, которые я ожидал на (верном) Firefox/Opera/Safari/Chrome и IE (ложь).

Обратите внимание что implementation.hasFeature подход проигнорирует поддержку через плагины, поэтому если Вы захотите проверить на, например, плагин Adobe SVG Viewer для IE, то необходимо будет сделать это отдельно. Я предположил бы, что то же верно для плагина RENESIS, но не проверило.

56
ответ дан Levi Lindsey 24 November 2019 в 17:34
поделиться

Вы можете пропустить это и использовать библиотеку JS, которая позволит вам делать векторную отрисовку кросс-браузером, если вы этого захотите. Библиотека будет обрабатывать это, выводя в SVG, если это поддерживается, или откат к холсту, VML, flash, silverlight и т.д., если это не поддерживается, в зависимости от того, что доступно.

Примеры библиотек, которые будут это делать, не в определенном порядке:

4
ответ дан 24 November 2019 в 17:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: