2012-04-25 3 views
0

Я пытаюсь вызвать функцию дочернего окна из родительского окна в событии click. Он не работает в Safari и Chrome, но работает над Firefox. Я использую этот код для вызова функции дочернего окна от кнопки родительского окна событиявызов функции дочернего окна из родительского окна при событии клика, не работающего на сафари и chrome

var iframeElem = document.getElementById("iframe"); 
iframeElem.contentWindow.muteVideoSound(); 

немого окно функция на дочернем окне, которое загружает в IFRAME.

ответ

0

Вы пытаетесь вызвать функцию внутри iframe из родительского окна?

Это можно сделать так:

main_window.html

<!DOCTYPE html> 
<html> 
<head> 
<title>main window</title> 
<script type="text/javascript" src="jquery-1.7.2.min.js"></script> 
<script> 
$(document).ready(function() { 
    $("a#update_text_link").click(function(event) { 
     event.preventDefault(); 
     $("iframe#iframe_id")[0].contentWindow.update_text(); // run the function 
    }); 
}); 
</script> 
</head> 
<body> 
<p><a href="#" id="update_text_link">Update iframe text</a></p> 
<iframe src="iframe.html" id="iframe_id"></iframe> 
</body> 
</html> 

iframe.html

<!DOCTYPE html> 
<html> 
<head> 
<title>iframe</title> 
<script type="text/javascript" src="jquery-1.7.2.min.js"></script> 
<script> 
function update_text() { 
    $("h1").fadeOut(function() { 
     $(this).text("Some updated text.").fadeIn(); 
    }); 
} 
</script> 
</head> 
<body> 
<h1>Some text.</h1> 
</body> 
</html> 

Однако, это не будет работать в некоторых браузерах (например, Chrome), если вы загружаете веб-страницу из локальной файловой системы. Поэтому вам нужно поставить этот пример на веб-сервер, а затем попытаться открыть его в таких браузерах.

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

Invoking JavaScript code in an iframe from the parent page

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