Javascript для удаления элементов, загруженных в iFrame - PullRequest
4 голосов
/ 22 июня 2011

После поиска в Google и переполнения стека я решил спросить, возможно ли это.

В настоящее время я загружаю iFrame на свой сайт.Я хочу скрыть определенный элемент, загруженный в iFrame.

<span id="blahblah">


function collapseAll(){

var body = document.getElementById('body');
var spans = body.getElementsByTagName("span");
var span;
for (i = 0; i < spans.length; i++){
  span = spans[i];
  if(span.class=='blahblah'){
  span.style.visibility = "hidden";
  }
 }
}

Однако это не сработало.Вопрос номер один, это можно сделать?Если да, не могли бы вы объяснить, как?

Спасибо.

Ответы [ 4 ]

3 голосов
/ 22 июня 2011

Вы должны будете поместить этот скрипт в содержимое iframe. Вы не можете получить доступ к DOM другого фрейма, особенно если он из другого домена.

1 голос
/ 22 июня 2011

Извините, но вы не можете получить доступ к элементам внутри iframe из внешнего окна из-за мер безопасности.

Возможно, вам придется попробовать это, но вы можете создать функцию для оконного объекта iframe и вызвать ее из внешнего окна.

В кадре:

<script type="text/javascript">
    window.collapseAll = function() {
        .....
    }
</script>

во внешнем окне:

<script type="text/javascript">
    function doCollapse() {
        document.getElementById('my_iframe").window.collapseAll();
    }
</script>

Опять же, это не проверено, но я уверен, что Facebook делает нечто подобное.

0 голосов
/ 28 февраля 2015

<script type="text/javascript">

function remove_elemment() {
    var body = document.getElementById('body');
	var divs = body.getElementsByTagName("div");
	var div;
	for (i = 0; i < divs.length; i++){
	  div = divs[i];
	  if(div.class=='buybox'){
	  	**div.style.display = "none";**
	  }
	}
};

function doRemove() {
    document.frame.document.getElementById('my_iframe').remove_elemment();
}();

</script>
<div class="floating-widget">
	<iframe id="my_iframe" src="http://www.nodebeginner.org/index-vi.html" frameborder="0" width="100%" height="500">				
	</iframe>

</div>
0 голосов
/ 22 июня 2011

если iframe находится в том же домене, что и ваш javascript, то это выполнимо.

используя обычный javascript, вы написали бы следующее

`

function collapseAll(){

var body = document.getElementById('body');
var spans = body.getElementsByTagName("span");
var span;
for (i = 0; i < spans.length; i++){
  span = spans[i];
  if(span.class=='blahblah'){
  **span.style.display = "none";**
  }
 }
}

это решает проблему.

если iframe с другого сайта (домена), то все будет очень сложно .. Существуют такие решения, как greasemonkey, которые могут работать на страницах из разных доменов.

вы можете попробовать

document.frame.document.getElementsByTagName('span')
...