Ссылка на данные URL не открывается, пока я не нажму кнопку возврата в строке URL. - PullRequest
2 голосов
/ 10 апреля 2020

У меня есть фрагмент html, который я хочу отобразить в другом окне, когда кто-то нажимает на ссылку (встроенную в некоторый текст, исходящий из серверной части) в браузере. Таким образом, в Java бэкэнде, я base64 кодирую его и помещаю в текст, который отправляется на внешний интерфейс:

String encoded = DatatypeConverter.printBase64Binary(resourceRecord.getHtml().getBytes());
                    a.attr("href", "data:text/html;base64," + encoded)
                            .attr("target", "_blank")
                            .attr("rel", "nofollow");

И когда текст отображается, я вижу подчеркнутую синим цветом ссылку в веб-инспекторе это выглядит так: enter image description here

Пока все хорошо. К сожалению, когда я нажимаю на ссылку, она просто открывает новую пустую вкладку. И в Firefox, и в Chrome, если я нажимаю на адресную строку в этой новой вкладке, она отображает URL-адрес данных в адресной строке, и если я нажимаю клавишу возврата, отображается ожидаемое html.

Как я могу сделать так, чтобы html действительно отображался без шага "клик в адресной строке и возврат"? Или это вообще возможно?

Обновление Добавлена ​​политика безопасности контента с navigate-to 'self' https: http: data:, и это не помогло. Я также попробовал не base64-кодирование, потому что я прочитал один сайт, который сказал, что Chrome ограничивал URL-адреса данных верхнего уровня только для кодировки base64, но это не помогло, а другие источники говорили об ограничении его для всех URL-адреса данных. Каждое решение, которое я видел, включало в себя открытие окна и выполнение записи в него, а не использование тега <a>, поэтому я прихожу к выводу, что это просто невозможно.

...