Я получаю URL-адрес изображения из моей базы данных и должен отображать его в теге <img>
. Проблема в том, что JSF кодирует &
как &
, а URL-адрес изображения не найден.Предотвращение JSF-кодирования & as & в картинке url
Вот пример. Правильный URL изображения:
https://<server details>?ahid=2096&aid=107687&lid=28812968&url=202.jpg
закодированы URL:
https://<server details>?ahid=2096&aid=107687&lid=28812968&url=202.jpg
В этом случае кодированный URL изображения не найден и отображает значок сломанные изображения. Как я могу это решить?
EDIT: html
элементы с их JSF
теги:
<a href='#{product.itemUrl}' target="_blank">
<img src='#{searchResults.getThumbnailUrl(product)}' class="img-responsive imageproduct" />
</a>
EDIT 2:
Я думал, что я хотел бы попробовать заменить &
назад &
с javascript
, но это не работает, либо потому, что в javascript
графический url - это хорошо, в то время как в исходном браузере это не так. Вот код. В браузере:
<img id="thumbnailId" onmouseover="decodeUrl(this)" src="https://www.proxibid.com/asp/LotImageViewer.asp?ahid=3231&aid=108183&lid=28955872&url=144-1.jpg" />
JavaScript:
function decodeUrl(img) {
var url = img.src;
console.log("url before = " + url);
url = replaceAll(url, "&", "&");
console.log("url after = " + url);
}
function replaceAll(str, find, replace) {
return str.replace(new RegExp(find, 'g'), replace);
}
Выход
url before = https://www.proxibid.com/asp/LotImageViewer.asp?ahid=3231&aid=108183&lid=28955872&url=144-1.jpg
url after = https://www.proxibid.com/asp/LotImageViewer.asp?ahid=3231&aid=108183&lid=28955872&url=144-1.jpg
, как вы можете видеть два идентичны, и правильно. Но с результатами поиска результатов в
src="https://www.proxibid.com/asp/LotImageViewer.asp?ahid=3231&aid=108183&lid=28955872&url=144-1.jpg"
, который является неправильным, и изображение не работает. Любая идея, как это исправить?
Какие серверные технологии вы используете (php, .NET и т. Д.)? –
В HTML-коде '&' должен быть закодирован как '&', так что если вы посмотрите на HTML код ваш URL изображения должен выглядеть следующим образом '' браузер автоматически преобразует этот url в 'https: // <информация о сервере>? ahid = 2096 & aid = 107687 & lid = 28812968 & url = 202.jpg' при запросе изображения.Я думаю, у вас есть какая-то двойная кодировка, и что ваш источник фактически содержит '& усилителя;': '
[link1] (http://mrcoles.com/blog/how-use-amersands-html-encode/) , [link2] (http://stackoverflow.com/questions/2949173/how-can-i- stop-the-browser-from-url-encoding-form-values-on-get) –