getElemenstByTag возвращает значение null внутри iframe плагина страницы facebook

#javascript #html #css #facebook #iframe

Вопрос:

Есть ли какая-либо ошибка в коде ? или как я должен получить желаемый результат ?

Моя цель состоит в том, чтобы сделать это

 document.getElementById('iframe1').contentWindow.document.getElementsByTagName("IMG").style = "filter:invert(100%);";
 

Весь код приведен ниже

 <iframe onload="frameload()" lazy="true" sandbox="allow-same-origin allow-scripts block-popups allow-forms" class='viewport-iframe' id='iframe1' src="https://www.facebook.com/plugins/page.php?href=https://www.facebook.com/Troll.Malayalam/posts/amp;tabs=timelineamp;width=340amp;height=500amp;small_header=trueamp;adapt_container_width=trueamp;colorscheme=amp;hide_cover=falseamp;show_facepile=falseamp;appId" scrolling="no" frameborder="0" allowfullscreen="true" allow="autoplay; clipboard-write; encrypted-media; picture-in-picture; web-share" frameborder="0" allowFullScreen="true" webkitallowfullscreen="true" mozallowfullscreen="true"></iframe> 
<script type="text/javascript">
  function frameload(){
   alert(document.getElementById('iframe1'));
   alert(document.getElementById('iframe1').getElementsByTagName("img"));
  }
</script>
 

Комментарии:

1. Если вы хотите использовать document.getElementById('iframe1').contentWindow.document.getElementsByTagName("IMG") , то зачем вы звоните document.getElementById('iframe1').getElementsByTagName("img") ?

2. @VLAZ Я пробовал разные типы изменений в коде

3. @VLAZ, какой из них правильный ?

4. Вы НЕ МОЖЕТЕ войти в iframe, содержимое которого загружено из другого домена, с помощью сценариев с вашей страницы, это предотвращает та же политика происхождения.

5. @CBroe Есть ли способ сделать все изображения перевернутыми по цвету внутри IFRAME

Ответ №1:

Если вы успешно получаете iframe, измените свой код следующим образом. Добавьте свои атрибуты в тег iframe

 <iframe onload="frameload()" id='iframe1'></iframe> 
<script type="text/javascript">
   function frameload(){
         var tags = [...document.getElementById('iframe1').contentWindow.document.getElementsByTagName("img")];
         tags.forEach((el)=>{el.style="filter:invert(100%);"});
    }
</script>
 

Комментарии:

1. Но,братан, все равно изображение в Iframe не перевернуто

2. @SimpleGuy_ ! используйте следующее, работающее на меня [...document.getElementById('iframe1').contentWindow.document.getElementsByTagName("img")]

3. Что толку в этих 3 точках (…)

4. теги var = [document.getElementById(‘iframe1’).contentWindow.document.getElementsByTagName(«img»)]; предупреждение(теги); Я не получаю никаких предупреждений, что означает нулевое значение,верно ?

5. @SimpleGuy_ ! 3 точки (…) называются оператором распространения. Извините, не могу объяснить здесь, погуглите