Trying to extract from an Iframe containg a php doc with Firefox JS

Posted on 2006-03-28
Last Modified: 2008-02-01
I chose JS as the are but it could be HTML or other areas (depends on the solution)

I need to extract a string from a document sitting in an Iframe. The doc is loaded from the same directory as the page I am accessing the Iframe from and I donr get Access Denied (yet). I need this to work with both IE and Firefox at least. The scenario is

I call a function from JS in the body of the "main" document to extract data. The frame is named and has id (both the same)

This code works with IE but not with Firefox

var myhtml;
var timebit;
var timebit1;
var temp = new Array();
var index

it also works if I use frames["smarttime"] etc.

I have tried various constructs which result in an undefined error or just nothing extracted. I have moved stuff around to ensure the frame was loaded before the script was executed (dont know why cos IE works) and I have used scripts I have found on the net. (which I can provide if required, however the issue is not to discover what doesnt work but what does.) I dont really know whether JS (or whatever) treats the content of the iframe or even the iframe itself as object or frame or what. This is my first time using an iframe (maybe the last) so I dont know really what info is required to solve this, but can provide more if necessary. I can using a construct I found here get the frame content rendered into a window but this is not OK for me as I need to parse the source and cant have windows popping up in the app. I think I would eventaully get there but time is of the essence so I reckon its worth more than difficult

Cheers if anyone can help Id be grateful.
Question by:rscandc0
    LVL 28

    Accepted Solution

    try this one..

    myhtml = top.smarttime.window.document.body.innerHTML;
    if (!myhtml) {
        alert ('MY HTML is ' + myhtml);
    if (myHTML) {
    var index = myhtml.indexOf ('ET');


    Author Comment

    I have accepted your answer (sneaky putting myHTML not myhtml..just trying to catch me huh?). It actually alerted me to the real problem which was the iframe was not loaded when the script ran ( and also it did extract the data from the iframe once loaded) so thanks. For some reason Firefox loads the frame at a different point than IE (why am I not surprised!!!!) even moving everything to the bottom of the doc don't work. So Im off to research that..worst case Ill use a button to activate the scripts or an onload call attached to the frame.

    So cheers
    LVL 28

    Expert Comment

    by:Pravin Asar
    Sorry about the typo myHTML

    Here is code, I used to test.

    <body onload does work with IE, and FF.
    Please check it out.

    <title>Frame3 Access </title>
    <script language="javascript">
    function onLoad() {
    alert (top.ifr3.window.document.body.innerHTML);

    <body onLoad="onLoad();">
    <iframe id="ifr1" width="100" height="100" title="iframe 1">
    <iframe id="ifr2" height="100" width="100" title="Iframe 2">
    <iframe id="ifr3" name="ifr3" height="100" width="100" title="iframe 3" src="form.htm">

    <!--- FORM.HTM -->

    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Test Form </title>

    <form name="MyForm">
    <select size="1" id="Select1" name="selectMonth" disabled="true">
      <option selected value="Jan">Jan</option>
      <option value="Feb">Feb</option>
      <option value="Mar">Mar</option>
      <option value="Apr">Apr</option>
      <option value="May">May</option>
      <option value="Jun">Jun</option>
      <option value="Jul">Jul</option>
      <option value="Aug">Aug</option>
      <option value="Sep">Sep</option>
      <option value="Oct">Oct</option>
      <option value="Nov">Nov</option>
      <option value="Dec">Dec</option>
    <select size="1" name="yearclosed" disabled="true">

    Author Comment

    Thanks for your help

    Featured Post

    Highfive + Dolby Voice = No More Audio Complaints!

    Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

    Join & Write a Comment

    Both jQuery and Mootools offer some nice, easy to use scripts. Mootools is best known for their interactive slideshows and jQuery for their menus, but both have many other uses as well.   jQuery is basically a toolkit with many DOM (http://en.wik…
    Article by: DanRollins
    This article describes a JavaScript program that creates a maze made of hexagonal cells.  In Part 2 (, we'll extend the program by adding a depth-…
    The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
    The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

    733 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    18 Experts available now in Live!

    Get 1:1 Help Now