JSF 2.0 - Включение тега сценария с амперсандом в URL - PullRequest
1 голос
/ 27 августа 2011

Я пытаюсь включить скрипт API Карт Google:

<script src="https://maps.googleapis.com/maps/api/js?v=3&sensor=false" type="text/javascript"></script>

Проблема в том, что символ амперсанда вызывает ошибку синтаксического анализа XML.Если я сделаю это:

<script src="https://maps.googleapis.com/maps/api/js?v=3&amp;sensor=false" type="text/javascript"></script>

, оно будет дословно возвращено.

Есть идеи, как получить предполагаемый тег сценария на получающейся странице?

Ответы [ 3 ]

3 голосов
/ 27 августа 2011

Проблема в том, что символ амперсанда вызывает ошибку синтаксического анализа XML.Если я сделаю это:

<script src="https://maps.googleapis.com/maps/api/js?v=3&amp;sensor=false" type="text/javascript"></script>

, оно будет дословно возвращено.

Не должно.Это совершенно верно.Более того, согласно спецификации HTML необходимо использовать &amp; для разделения нескольких параметров в строках запроса в атрибутах href и src любого HTML-элемента.Ваша дословная проблема вызвана чем-то другим.

2 голосов
/ 27 августа 2011

Мне немного не нравится, но, по крайней мере, это работает:

<h:outputText value="&lt;script src=&quot;https://maps.googleapis.com/maps/api/js?v=3&amp;sensor=false&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;"/>

Я оставлю это без ответа, если у кого-то есть более чистое решение.

0 голосов
/ 25 июня 2013

Я проверил то, что предложил Стив Тейлор, и сначала у меня это не сработало.Он рисовал строки & и "без кодировки символов, поэтому тег сценария рассматривался не как таковой, а как обычная текстовая строка. Затем я попытался передать атрибут escape =" false "на вкладку h: outputTextи вуаля! Работал как шарм. Не самое чистое решение вокруг, это точно, но это единственное, которое до сих пор работало для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...