2013-04-12 4 views
0

Все, что мне нужно, это показать форму родительской страницы, только если идентификатор элемента ID загружается внутри iframe. parent/iframe находятся в одном домене. Как я могу достичь этого с помощью javascript?Скрыть форму с родительской страницы до тех пор, пока не будет загружен определенный идентификатор элемента iframe.

<form id="Search" action="../search.php" target="my-iframe" method="post"> 
<input type="text" id="location" name="keywords[all_words]" /> 
<a href="#" onclick="document.getElementById('Search').submit()" >Search</a> 
</form> 

<iframe id="myiframe" src="../page.html" name="myiframe" width="100%" height="100%" scrolling="no" frameborder="0"></iframe> 

ответ

1

Вы можете использовать что-то вроде этого:

// wait for the page to finish loading 
window.onload = function(){ 

    // hide your form 
    document.getElementById('Search').style.display = 'none'; 

    // get the document of the iframe 
    var frameDocument = document.getElementById('myiframe').contentWindow.document; 
    // if this is true the element with id 'test' is in the frame 
    if(frameDocument.getElementById('test')){ 
     // show your form 
     document.getElementById('Search').style.display = 'block'; 
    } 
} 
+0

Я получаю синтаксическую ошибку на консоли (Null): var frameDocument = document.getElementById ('myiframe'). ContentWindow.document; хотя iframe id верен. – marius

+1

Возможно, вам потребуется обернуть код сценария в 'window.onload = function() {...}'. Вы можете получить эту ошибку, потому что iframe не был загружен при запуске скрипта. – louisbros

+0

Спасибо, работает. – marius

Смежные вопросы