Отметить некоторые блоки Javascript как «специальные» - PullRequest
1 голос
/ 15 октября 2010

По какой-то сложной причине мне нужно пометить 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, все атрибуты тега script имеют очень специфические функции. Но есть ли обходной путь?

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

Есть идеи?


Изменить:

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

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

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

или

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

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

Ответы [ 4 ]

0 голосов
/ 02 марта 2012

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

0 голосов
/ 15 октября 2010

Использовать атрибуты data- * .... Они соответствуют стандартам:

<script data-foo="bar">
0 голосов
/ 15 октября 2010

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

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

  • оберните тег вокруг него, чтобы пометить его как особенный (полностью соответствует стандартам, работает в любом браузере, но может не сработать для вашей проверки)
  • придерживайтесь стандартов и создайте свое собственное DTD, что несколько нарушит IEsupport
  • игнорировать стандарты и просто добавить некоторый атрибут (никто, кроме валидатора W3, на самом деле не позаботится)

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

0 голосов
/ 15 октября 2010

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

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

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

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

...