noscript.inner HTML имеет разные результаты для разных браузеров - PullRequest
1 голос
/ 03 февраля 2020

Следующий код имеет разные результаты в сафари против chrome против firefox.

var noscript = document.getElementsByTagName('noscript')[0];
console.log(noscript.innerHTML);

Результат в Chrome:

<img alt="***" title="***" src="***" width="***" height="***" srcset="***" sizes="***"  />

Результат в Firefox:

<img alt=\"***\" title=\"***\" src=\"***\" width=\"***\" height=\"***\" srcset=\"***\" sizes=\"***\"  />

Результат в Safari:

&lt;img alt="***" title="***" src="***" sizes="***"  /&gt;

Как создать и внедрить действительный кросс-браузер для элемента img?

В следующих работах Chrome & Firefox

noscript.insertAdjacentHTML('beforebegin',noscript.innerHTML);

Следующие работы в сафари

var html = new DOMParser().parseFromString(noscript.innerHTML, "text/html");
noscript.insertAdjacentHTML('beforebegin',html.documentElement.innerText);

1 Ответ

0 голосов
/ 03 февраля 2020

Вы можете использовать несколько методов обнаружения клиентов и обнаружения совместимости, чтобы обнаружить браузер и затем выполнить правильный код для каждой ситуации. { ссылка }

...