W3 Не работает с <noscript>, вложенным в тег DIV - PullRequest
3 голосов
/ 09 ноября 2010

У меня отлично работает приложение, но мне бы хотелось, чтобы его можно было полностью проверить на W3.

Моя проблема довольно проста. Я использую Bing JS API, чтобы прикрепить Bing Map к тегу Div. В этом теге Div у меня есть элемент <noscript>, который вызывает поставщика статической карты MultiMap, если JavaScript отключен. Причина, по которой я решил сделать это таким образом, заключается в том, что я не хочу вызывать API MultiMap, если я не собираюсь его использовать.

Есть ли альтернативный способ сделать это, чтобы я мог быть верным W3 HTML5?

<div id='bingMap' class="largeMap">
    <noscript>
        <img src="http://developer.multimap.com/API/map/1.2/xxxxxxxxxxxxxxx?zoomFactor=11&amp;width=550&amp;height=400&amp;lat_1=51.18468&amp;lon_1=-114.497999&amp;lat_2=51.169858&amp;lon_2=-114.32549&amp;lat_3=51.083277&amp;lon_3=-114.203964&amp;lat_4=51.063097&amp;lon_4=-114.092031&amp;lat_5=50.939664&amp;lon_5=-113.973568" />
    </noscript>
</div>

Ответы [ 4 ]

1 голос
/ 30 декабря 2010

Я бы предложил убрать xmlns, чтобы он не интерпретировал ваш код как XHTML5 (в отличие от HTML5), поскольку XHTML5 - это просто более строгая версия HTML5, запрещающая многие функции. HTML5 по-прежнему поддерживает теги в стиле XHTML, поэтому без потерь.

Будет работать что-то вроде следующего:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <title>title</title>
  </head>
  <body>
    <div id="bingMap" class="largeMap">
      <noscript>
        <img alt="" src="http://developer.multimap.com/API/map/1.2/xxxxxxxxxxxxxxx?zoomFactor=11&amp;width=550&amp;height=400&amp;lat_1=51.18468&amp;lon_1=-114.497999&amp;lat_2=51.169858&amp;lon_2=-114.32549&amp;lat_3=51.083277&amp;lon_3=-114.203964&amp;lat_4=51.063097&amp;lon_4=-114.092031&amp;lat_5=50.939664&amp;lon_5=-113.973568" />
      </noscript>
    </div>
  </body>
</html>
1 голос
/ 09 ноября 2010

Оберните <img/> в div, p или другой блочный элемент. <noscript> разрешено иметь только блочные элементы в качестве прямого потомка.

<div id='bingMap' class="largeMap">
    <noscript>
        <div>
            <img src="....." />
        </div>
    </noscript>
</div>
1 голос
/ 09 ноября 2010

Это возможно:

<html>
<body>
  <script type="text/javascript">
    document.write("<" + "!--");
  </script>
  <p>This will be commented out if scripting is supported.</p>
  <script type="text/javascript">
    document.write("-" + "->");
  </script>
</body>
</html>
0 голосов
/ 09 ноября 2010

Следующее подтверждается для меня на http://validator.w3.org/check

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC
  "-//W3C//DTD XHTML 1.1//EN"
  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<head>
<title>title</title>
    <meta http-equiv="content-type" 
        content="text/html;charset=utf-8" />
    <meta http-equiv="Content-Style-Type" content="text/css" />
</head>
<body>

<div id='bingMap' class="largeMap">
    <noscript>
      <div>
        <img alt="" src="http://developer.multimap.com/API/map/1.2/xxxxxxxxxxxxxxx?zoomFactor=11&amp;width=550&amp;height=400&amp;lat_1=51.18468&amp;lon_1=-114.497999&amp;lat_2=51.169858&amp;lon_2=-114.32549&amp;lat_3=51.083277&amp;lon_3=-114.203964&amp;lat_4=51.063097&amp;lon_4=-114.092031&amp;lat_5=50.939664&amp;lon_5=-113.973568" />
      </div>
    </noscript>
</div>

</body>
</html>
...