2014-01-07 4 views
0

Для того, чтобы предотвратить IFRAME мигания, я устанавливаю его видимость внутри SetTimeout (СМЧ устанавливается на видимость: скрытый)Ориентация в IFRAME с Js/JQuery до того, как DOM нагрузок

setTimeout(function(){ 
$n('#myFrame').css('visibility','visible');}, 750); 

работы отлично, хотя, когда я загружаю последующие местоположения внутри фрейма, мигающее поведение возвращается, поскольку видимость уже установлена.

Что бы я хотел сделать, это создать функцию, которая нацелена на iframe перед загрузкой DOM/страницы, чтобы снова установить видимость, а затем setTimeout.

Имейте в виду, что этот сценарий будет работать на платформе ServiceNow, то есть некоторые варианты ограничены (не может загрузить в голову документа и т.д.)

Это вроде как обратный document.ready(). Возможно ли это?

Спасибо за зацепки,

Paco

+0

javascript нуждается в событии для запуска. выясните, какое событие заставляет iframe измениться, и сказал, что это событие скроет его и снова просмотрит его по мере необходимости. –

+0

Привет, Пако, вы нашли решение для этого? Я застрял, пытаясь скрыть все на странице пользовательского интерфейса с помощью Jelly, и кажется, что он всегда будет запущен после завершения загрузки Dom. Спасибо –

ответ

1

Просто установите его в источнике:

<iframe style="display: none;"></iframe> 

Затем снимите скрыть его, когда вы хотите.

0
$('buttonToChangeTheIframePage').click(function(e){ 
    e.preventDefault(); 

     $('#myFrame').css('visibility','hidden'); 
     $('#myFrame').delay(1000).css('visibility','visible'); 
}); 

Это предполагает, что вы загружаете места из ВНЕ фрейма - ничего внутри фрейма (как ссылку) будет по-прежнему вызвать такое поведение.

EDIT

Это на самом деле лучше и будет работать на любых условиях (я думаю - просто проверить не глупые ошибки, как не проверено)

<iframe id="myFrame" src="http://www.google.com/" onLoad="hideUnhide();"></iframe> 

function hideUnhide(){ 
    $('#myFrame').css('visibility','hidden').delay(1000).css('visibility','visible'); 

} 
+0

Я действительно загружаю места изнутри iframe. –

0

Использование addAfterPageLoadedEvent(func) в js_include_doc_type.js

<iframe id="gsft_main" style="visibility: hidden;"> 

anything .... 

<script> 
addAfterPageLoadedEvent(function() { 
    $j('#gsft_main').css('visibility','visible'); 
}); 
</script> 

</iframe>