Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to call javascript function specified in a child <frame>

I'm working on a ancient project which is based on and tags.

Here's the common HTML structure of the parent page (index.html):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>  
</head>
<frameset rows="75px,*" frameborder="0">
    <frame name="frame1" src="frames/frame1.html">
    <frameset class="child_frameset">
        <frame name="frame3" src="frames/frame3.html">
    </frameset>
</frameset>
</html>

Here how I specify the javascript function on the child frame (frame3.html):

<!DOCTYPE html>  
<html lang="en">  
<head>
    <script type="text/javascript">
        function helloWorld(){
            alert('hello world!');
        }
    </script>   
</head>
<body>
    <h1>I'm frame 3</h1>
</body>
</html>

My task is to call helloWorld() function. How do I do that?
Thanks in advance!

like image 893
LoomyBear Avatar asked May 10 '11 07:05

LoomyBear


People also ask

How do you call a specific function in JavaScript?

The JavaScript call() Method The call() method is a predefined JavaScript method. It can be used to invoke (call) a method with an owner object as an argument (parameter). With call() , an object can use a method belonging to another object.

How do you call a function named myFunction in JavaScript?

Define a function named "myFunction", and make it display "Hello World!" in the <p> element. Hint: Use the function keyword to define the function (followed by a name, followed by parentheses). Place the code you want executed by the function, inside curly brackets. Then, call the function.

What is the frame in JavaScript?

HTML frames are used to divide your browser window into multiple sections where each section can load a separate HTML document. A collection of frames in the browser window is known as a frameset. The window is divided into frames in a similar way the tables are organized: into rows and columns.


2 Answers

You can do it like this:

document.getElementById('frame3').contentWindow.helloWorld();
like image 139
Jayantha Lal Sirisena Avatar answered Sep 17 '22 14:09

Jayantha Lal Sirisena


You can call method from childframe

window.frames[n].frames[m].methodName()

where n , m are integers starting from 0.If you have document only one frame remove the frames[m] part and get the job done.

Ya one more thing , do trial an error and find out exact frame numbers and method. Hope this helps

like image 28
ALLSYED Avatar answered Sep 17 '22 14:09

ALLSYED