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

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
myhtml=window.frames["smarttime"].document.body.innerHTML;
index=myhtml.indexOf("ET")

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.
rscandc0Asked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Pravin AsarPrincipal Systems EngineerCommented:
try this one..

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

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
rscandc0Author Commented:
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
Pravin AsarPrincipal Systems EngineerCommented:
Sorry about the typo myHTML

Here is code, I used to test.

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



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

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


<!--- FORM.HTM -->

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

<body>
<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>&nbsp;
<select size="1" name="yearclosed" disabled="true">
  <option>2005</option>
  <option>2006</option>
  <option>2007</option>
  <option>2008</option>
  <option>2009</option>
  <option>2010</option>
</select>
</form>
</body>
</html>
rscandc0Author Commented:
Thanks for your help
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
JavaScript

From novice to tech pro — start learning today.