2010-10-15 2 views
1

По какой-то сложной причине, мне нужно отметить некоторые Javascript, как «специальный», как это:блоков Марка некоторых Javascript, как «специальный»

<script type="text/javascript" someattribute="special"> 
    var special = "I'm special!"; 
</script> 

<script type="text/javascript" someattribute="special" src="special.js"> 
</script> 

Можно ли сделать это способом, который соответствует стандартам XHTML ? Согласно http://www.w3schools.com/tags/tag_script.asp, все атрибуты для тега скрипта имеют очень специфические функции. Но есть ли обходной путь?

Идея состоит в том, чтобы подбирать теги как элементы XML и помещать их в другую страницу на уровне сервера, прежде чем она попадет в браузер, поэтому мне нужна специальная метка в фактическом XML-странице страницы. Добавление его после загрузки страницы на уровне браузера с использованием Javascript не будет работать.

Любые идеи?


Edit:

Ради стандартов требований, я не могу использовать HTML5. Вся система, с которой я пытаюсь быть совместимой, - XHTML 1.0.

Теперь, когда я успел подумать об этом, я думаю, что добавление переменной GET или привязка в src скрипта может просто сделать трюк. Например, вместо предыдущего примера, сделайте

<script type="text/javascript" src="special.js?special"></script> 

или

<script type="text/javascript" src="special.js#special"></script> 

Попробую сейчас.

+0

Есть ли причина, по которой вы не можете использовать HTML5? Если вы хотите использовать XHTML, вы можете использовать XHTML5. Вы даже можете записать его так же, как обычно, вы пишете XHTML 1.0, только с помощью документа типа HTML5 (даже этот тип документа технически не требуется, поскольку XHTML не имеет quirksmode, так что doctype можно безопасно игнорировать. –

+0

Да, там была причиной. Сайт в основном XHTML 1.0. Очень немногие страницы являются динамичными. Организация уделяет большое внимание созданию всего сайта XHTML 1.0-совместимым и поддерживает это. Они ничего не поддерживают. большая организация, поэтому любые изменения - это большое дело. Если страница с HTML5 получила свой код, поднятый и вставленный на внешнюю страницу XHTML, это было бы РАБОТАЕТ, но это было бы грязно, и внутренний код не мог быть надежно проверен на его Соблюдайте все это в XHTML в долгосрочной перспективе. С другой стороны, использование переменных GET выполняло эту работу. – eje211

ответ

0

Я оглядываюсь назад, это сообщение спустя много времени. Это просто сказать, что то, что я написал в моем редактировании, действительно работало и соответствовало стандартам.

0

Если вы используете HTML5, вы можете сделать это:

<script data-special='true'> 
</script> 

и он будет проверять. Однако, кроме неудачной проверки, вы можете уйти с помещением произвольных атрибутов в теги, и это, как правило, будет работать. Использование соглашения «data-» HTML5 - это безопасный путь, потому что у вас есть 0% -ный шанс случайно вызвать какое-то странное поведение.

Обратите внимание, что с HTML5 вам не нужен атрибут «type», и на самом деле он не рекомендуется в модных кругах Javascript.

0

Использования данных- * атрибуты .... Они стандарты:

<script data-foo="bar"> 
0

С XHTML вы можете создать свой собственный DTD и с вашим собственным DTD вы можете легко добавить дополнительный атрибут в скриптовый тег. Однако ... поскольку вы, вероятно, захотите использовать это на веб-сайте в реальной жизни, это не сработает, потому что Internet Explorer этого не поддерживает.

Так что я думаю, что это ваш выбор:

  • обернуть тег вокруг него, чтобы пометить его как специальные (полностью совместимый со стандартами, работает в любом браузере, но может не работать для проверки)
  • Придерживайтесь стандарты и создать свой собственный DTD, который будет несколько сломаться поддержка IE
  • игнорировать стандарты и просто добавить атрибут (нИКТО кроме W3 валидатора будет действительно заботится)

Если вы выберете последний вариант, я предлагаю использовать атрибут id. Который, хотя и не поддерживается для тегов script, поддерживается как в html, так и в xhtml, так что браузеру это не понравится, и большинство валидаторов тоже это не волнует.

+0

Есть ли тег, который я могу написать вокруг него в голове или просто в теле? – eje211

+0

Это было бы что-то для всего тела. это немного сложнее. – Wolph

 Смежные вопросы

  • Нет связанных вопросов^_^