#javascript #html #iframe #browser #cross-origin-resource-policy
Вопрос:
У меня есть страница, на которой я включаю кадры из двух разных доменов, например, как показано ниже
<!-- domain 1 frames -->
<iframe src="domain1/page1.html">
<iframe src="domain1/page2.html">
<!-- domain 2 frames -->
<iframe src="domain2/page1.html">
Теперь предположим, что у меня есть приведенный ниже код javascript в domain1/page1.html
var frames = window.parent.frames;
Это даст мне все iframe (iframe из домена 1 и домена 2) из родительских окон. Однако я хочу получить только кадры iframe из домена 1. Когда я пытаюсь отфильтровать кадры iframe только из домена 1, используя приведенный ниже код
var isSameOrigingIframe = window.location.host == window.parent.frames[i].location.host;
Я получаю исключение безопасности (нарушение политики перекрестного происхождения), когда iframe из домена 1 пытается получить доступ к домену iframe 2.
Мое текущее решение основано на блоке try-catch, как показано ниже
var isSameOrigingIframe = false;
try{
isSameOrigingIframe = window.location.host == window.parent.frames[i].location.host;
}catch(e){
isSameOrigingIframe = false;
}
Вышеупомянутое решение работает, но есть ли какой-либо безопасный способ получить iframes только из одного домена? Или есть лучший способ отфильтровать кадры iframe из того же домена.