Как я могу поместить HTML в строку JavaScript и проверить его? - PullRequest
1 голос
/ 25 июля 2010

Я хочу показать разные CSS-файлы в зависимости от браузера, который использует пользователь. Я хочу сделать это на JS и на стороне клиента. Я использую такой код.

 <script language="javascript" type="text/javascript">
 if ((navigator.userAgent.indexOf("MSIE")) >= "0"){
    document.write("<link rel=\"stylesheet\" href=\"css/common.IE.css\" type=\"text/css\" 
 }
 if ((navigator.userAgent.indexOf("Chrom")) >= "0"){
    document.write("<link rel=\"stylesheet\" href=\"css/common.chrome.css\" type=\"text/css\" />");
 }

* Единственная проблема в том, что я этот код не действителен. Как я могу решить проблему. Если я проверю этот документ с помощью w3 checker. сейчас покажет: Строка 22, столбец 90: тип документа не допускает элемент "ссылка" здесь *****

…nt.write("<link rel='stylesheet' href='css/common.IE.css' type='text/css' />");

Строка 25, столбец 35: значение атрибута должно быть литералом, если оно не содержит только именные символы

document.write("<link rel=\"stylesheet\" href=\"css/common.chrome.css\"…

Ответы [ 3 ]

3 голосов
/ 25 июля 2010

Плохая идея. Не могли бы вы рассказать нам о своих реальных проблемах, из-за которых вы предлагаете разные таблицы стилей для разных браузеров?

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

3 голосов
/ 25 июля 2010

Оберните этот блок в теги CDATA .

Так что это выглядит как ...

<script language="javascript" type="text/javascript">
<![CDATA[
 if ((navigator.userAgent.indexOf("MSIE")) >= "0"){
    document.write("<link rel=\"stylesheet\" href=\"css/common.IE.css\" type=\"text/css\" 
 }
 if ((navigator.userAgent.indexOf("Chrom")) >= "0"){
    document.write("<link rel=\"stylesheet\" href=\"css/common.chrome.css\" type=\"text/css\" />");
 }
]]>
<script>
2 голосов
/ 25 июля 2010

разбить его на подстроки, чтобы он не был обнаружен ..

document.write("<l" + "ink ...

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

<script type="text/javascript">
//<!--

if ((navigator.userAgent.indexOf("MSIE")) >= "0"){
    document.write("<link rel=\"stylesheet\" href=\"css/common.IE.css\" type=\"text/css\" 
 }
 if ((navigator.userAgent.indexOf("Chrom")) >= "0"){
    document.write("<link rel=\"stylesheet\" href=\"css/common.chrome.css\" type=\"text/css\" />");
 }


//-->
</script>
...