У меня есть следующее в теле HTML страницы:
<aside id="ADVERT">
<img src='https://www.blackstone.com/images/default-source/assets/logos/blackstone-logo.png'>
</aside>
Позже на странице есть кнопка, которая при нажатии переключает изображение с другой. Вот код кнопки:
<button onclick="switchadvert();">Switch Logo</button>
Эта функция переключения Javascript сама по себе проста, всего одна строка, используя свойство innerHTML:
function switchadvert()
{ document.getElementById("ADVERT").innerHTML = "<img src='http://www.redstone.com/gfx/logo.png'>";
}
Кажется, все это работает. Когда я нажимаю кнопку, логотип меняется с логотипа Blackstone Group на логотип Redstone.
У меня вопрос, как это работает и почему это работает?
КАК:
По-видимому, как только я обновлю DOM с помощью этого нового innerHTML, браузер поймет, что эта часть страницы требует ресурса, которого у него нет (логотип redstone), и отправляется и получает его? Еще долго после загрузки страницы?
ПОЧЕМУ:
Я подумал, что даже если у меня возникнут проблемы с вызовом AJAX объекта XMLHttpRequest, мне не позволят получить ресурсы с другого сайта после загрузки страницы. Но здесь он делает это без каких-либо звонков! Разве это не открывает дверь для злоупотреблений межсайтовым скриптингом?