Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Getting focus on an HTML iframe

Posted on 2002-06-17
17
Medium Priority
?
1,388 Views
Last Modified: 2007-11-27
I am trying to gain focus of an iframe in a html document.

Using:
public AxSHDocVw.AxWebBrowser axWebBrowser1;

I can get the document fine and can view it in the broswer control or view the HTML in a textbox.

IHTMLDocument2 HTMLDocument =(IHTMLDocument2)WebBrowser1.Document;

However, I am trying to get focus on the data in the  HTML iframe and put the text in that iframe into a string.

Everything works but i cant get anything from the iframe. I seem to only get the text from the main html document.

Any help is appreciated.

0
Comment
Question by:aksteve
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 8
  • 8
17 Comments
 
LVL 22

Expert Comment

by:CJ_S
ID: 7084156
The syntax would be:

WebBrowser.document.iframename.document.formname.fieldname.value
or
WebBrowser.document.iframename.document.formname.fieldname.focus()

0
 
LVL 5

Author Comment

by:aksteve
ID: 7084587
The iframe has no name="value"

It is just:


<iframe frameborder='0' width='300' height='150' scrolling='No' src='http://iframehere.com'></iframe>
0
 
LVL 22

Expert Comment

by:CJ_S
ID: 7085811
You can set it's id can't you?

ANyway, you can also use the frames collection and the index.

WebBrowser.document.frames[0].document.formname.fieldname.focus()

0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
LVL 5

Author Comment

by:aksteve
ID: 7086547
No, i can't set its ID actually.. If I could i definately would..

Basically i am trying to access to text inside a iframe that has no id.. I am not sure if this can be done with DOM or what.. I have yet to figure it out..

Exactly the reason i offer 200 points for this :)
0
 
LVL 22

Expert Comment

by:CJ_S
ID: 7086655
Try the above. Instead of an id you use it's index.
0
 
LVL 5

Author Comment

by:aksteve
ID: 7086809
I think i tried it the way you suggested(and a few other ways) and got errors each time.

Error I got was:
Cannot apply indexing with [] to an expression of type 'mshtml.FramesCollection'

What i used was:

IHTMLDocument2 HTMLDocument = (IHTMLDocument2) axWebBrowser1.Document;
HTMLDocument.frames[0].document.focus();
0
 
LVL 22

Expert Comment

by:CJ_S
ID: 7090904
You need to cast the collection first, just like you've done for the document.

object iIndex = 0;
mshtml.IHTMLWindow2 x = (mshtml.IHTMLWindow2) HTMLDocument.frames.item(ref iIndex);

(just checked). Now you can access the document of that innerframe again the same way as you've done for the first HTMLDocument.

Regards,
CJ
0
 
LVL 5

Author Comment

by:aksteve
ID: 7093104
I emailed a piece to you. Although this answer is 90% correct and i will creit you the 200 points.

I will give ya some bonus points if you can get it 100%
0
 
LVL 22

Expert Comment

by:CJ_S
ID: 7093108
Will check later tonight. Seen the email, had no time yet :-/
0
 
LVL 22

Accepted Solution

by:
CJ_S earned 1600 total points
ID: 7093392
Was kinda easy. Same code, just one enhancement. This is the code I used to test.

               mshtml.IHTMLDocument2 doc = (mshtml.IHTMLDocument2) axWebBrowser1.Document;
               object iIndex = 0;
               mshtml.IHTMLWindow2 x = (mshtml.IHTMLWindow2) doc.frames.item(ref iIndex);
               doc = (mshtml.IHTMLDocument2) x.document;
               MessageBox.Show(doc.body.innerText);

CJ
0
 
LVL 5

Author Comment

by:aksteve
ID: 7093533
Hmm seems to work at the 1st url i gave you but it still doesnt at the 2nd url i sent you..
0
 
LVL 22

Expert Comment

by:CJ_S
ID: 7093614
0
 
LVL 5

Author Comment

by:aksteve
ID: 7093629
There is text hehe.. Click on the iframe and use view source..

Actually if i can just get the source of it that would be fine also.. i cant seem to get anything from the 2nd url
0
 
LVL 5

Author Comment

by:aksteve
ID: 7093752
Well you got it and i thank you a bunch!!

0
 
LVL 22

Expert Comment

by:CJ_S
ID: 7093763
But did you get it to work?

CJ
0
 
LVL 5

Author Comment

by:aksteve
ID: 7093780
Sure did :0
0
 

Expert Comment

by:DarrenSchwarz
ID: 14717583
For all you Emulators out there let me introduce myself Darren Schwarz...I have been doing extensive work re: webbrowser/application interface emulation and I know that the first time I came across "ntlm" authentication I thought my world had caved in on me...however after a few sleepless nights and some old school true programming I discovered the wonders of windows hooks...so...just thought I would put my hand up with humility  and say if I can help anyone with Win or Web emulation I would be glad to share the knowledge and hoipefully gain some too... thats it for now ..bye :)
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

We all know that functional code is the leg that any good program stands on when it comes right down to it, however, if your program lacks a good user interface your product may not have the appeal needed to keep your customers happy. This issue can…
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
Monitoring a network: how to monitor network services and why? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the philosophy behind service monitoring and why a handshake validation is critical in network monitoring. Software utilized …
In response to a need for security and privacy, and to continue fostering an environment members can turn to for support, solutions, and education, Experts Exchange has created anonymous question capabilities. This new feature is available to our Pr…
Suggested Courses

670 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