最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

call javascript function from outside an iframe - Stack Overflow

programmeradmin2浏览0评论

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 ?

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 ?

Share Improve this question asked Feb 28, 2011 at 10:19 Hector BarbossaHector Barbossa 5,52813 gold badges50 silver badges70 bronze badges 1
  • re. call from external file, see update[2] in answer below. – johnhunter Commented Mar 5, 2011 at 9:27
Add a comment  | 

3 Answers 3

Reset to default 12

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 :)

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.

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/

发布评论

评论列表(0)

  1. 暂无评论