call javascript function from outside an iframe

筅森魡賤 提交于 2019-12-18 16:46:35

问题


I have one entire html openning inside an iframe that contains a javascript function getData().Now I am not sure how to call getData() from outside that frame.Also is it possible to call it from an external javascript file ?


回答1:


You can get a reference to the frame window object from the window.frames property. See https://developer.mozilla.org/en/DOM/window.frames

UPDATE:

You can access the global context of a named iframe with window[framename]. e.g:

<iframe src="data.html" name="data"></iframe>

<script>
var myData = window.data.getData();
</script>

Although you will need to make sure the iframe has loaded.

In jQuery you can use the contents method if you want access to the iframe DOM:

$("iframe").contents()

All this is assuming the frame hosted within the same domain.

UPDATE[2]:

You asked if it is possible to call the getData function from an external js file. The answer is yes (if I understand you correctly). Here is an example:

<html>
<head>
    <meta charset="utf-8">
    <title>parent page</title>
</head>
<body>

    <iframe src="data.html" name="data"></iframe>
    <script src="getdata.js"></script>

</body>
</html>

Then in the getdata.js file you have:

var dataFrame = window.data;

// when the frame has loaded then call getData()
dataFrame.onload = function () {
    var myData = dataFrame.getData();
    // do something with myData..
}

Hope this answers your question :)




回答2:


in these cases you name your iframe and the main body that uses/launches frame and then use parent.objectname, in JS everything is Object and you should be able to call getData()

a quick googling led me to this -> http://www.esqsoft.com/javascript_examples/iframe_talks_to_parent/




回答3:


In certain situation there could be a neccessity of calling a javascript function inside an iframe from the parent document, and vice versa ie; calling a javascript function in parent document from the iframe.

For example; the parent document have an iframe with id attribute ‘iFrameId‘, and the function ‘functionInIframe()‘ is defined in that iframe document. Following code can call that iframe function from the parent document itself.

document.getElementById('iFrameId').contentWindow.functionInIframe();

And following code can call the function defined in parent document(functionInParent()) from the iframe itself.

parent.functionInParent();

This way javascript can interact between parent document and iframe.

This is the original post.



来源:https://stackoverflow.com/questions/5140696/call-javascript-function-from-outside-an-iframe

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!