Получите все кадры iframe в родительском окне, имеющие одинаковое происхождение из iframe

#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 из того же домена.