Мне нужна помощь в вызове функции из iframe в главное окно и передаче данных в эту функцию. - PullRequest
0 голосов
/ 18 марта 2012

Я работаю над тем, как вызвать функцию из iframe и передать данные этой функции в родительское окно.И iframe, и родительское окно находятся в одном домене.У меня есть навигация в iframe, которую нужно отслеживать через SCORM, и когда пользователь щелкает ссылку в iframe, он должен вызвать функцию в главном окне и отправить функцию currentPage.Ссылки в массиве, как это.Мне нужно, чтобы он вызывал функцию goToPage () в главном окне и передавал currentPage, который также находится в главном окне, рядом с функцией goToPage.Может кто-нибудь помочь мне с этой проблемой?Если бы вы могли показать мне в JavaScript, это было бы здорово.Заранее спасибо.

function AddNav(links, linkURL) {

var links = new Array();
links[0] = "linkName1";
links[1] = "linkName2";

var linkURL = new Array();
linkURL[0] = "linkURL1.html";
linkURL[1] = "linkURL2.html";

document.write('<ul class="nav">');

for (i=0; i<links.length; i++) {
    document.write('<li class="linkNum">'+links[i].link(linkURL[i])+'</li>');

}
document.write('</ul>');

getElementsByClassName("linkNum")[0].onclick = function () {

currentPage = 0;
var sendData = parent.currentPage;
});

getElementsByClassName("linkNum")[1].onclick = function () {

currentPage = 1;
var sendData = parent.currentPage;
});

}

function getElementsByClassName(linkNum) {
    var elements = document.getElementsByTagName("*");
    var found = [];

    for(var i=0; i < elements.length; i++) {
        if (elements[i].className == linkName) {
            found.push(elements[i]);
        }
    }
    return found;
}

1 Ответ

0 голосов
/ 18 марта 2012

Вот пример.

Родитель

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title></title>
    <script type="text/javascript">
        function callFunction(functionName, args) {
            debugger;

            var fn = window[functionName];
            if(typeof fn === 'function') {
                fn(args);
            }
        }

        function aFunction(msg){
            alert(msg)
        }
    </script>

</head>
<body>
<iframe src="frame.html"></iframe>
</body>
</html>

Рама:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title></title>
    <script type="text/javascript">
        window.parent.callFunction('aFunction','aMessage!');
    </script>
</head>
<body>


</body>
</html>
...