• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1587
  • Last Modified:

Getting focus on an HTML iframe

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
aksteve
Asked:
aksteve
  • 8
  • 8
1 Solution
 
CJ_SCommented:
The syntax would be:

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

0
 
aksteveAuthor Commented:
The iframe has no name="value"

It is just:


<iframe frameborder='0' width='300' height='150' scrolling='No' src='http://iframehere.com'></iframe>
0
 
CJ_SCommented:
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
Cloud Class® Course: Amazon Web Services - Basic

Are you thinking about creating an Amazon Web Services account for your business? Not sure where to start? In this course you’ll get an overview of the history of AWS and take a tour of their user interface.

 
aksteveAuthor Commented:
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
 
CJ_SCommented:
Try the above. Instead of an id you use it's index.
0
 
aksteveAuthor Commented:
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
 
CJ_SCommented:
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
 
aksteveAuthor Commented:
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
 
CJ_SCommented:
Will check later tonight. Seen the email, had no time yet :-/
0
 
CJ_SCommented:
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
 
aksteveAuthor Commented:
Hmm seems to work at the 1st url i gave you but it still doesnt at the 2nd url i sent you..
0
 
CJ_SCommented:
0
 
aksteveAuthor Commented:
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
 
aksteveAuthor Commented:
Well you got it and i thank you a bunch!!

0
 
CJ_SCommented:
But did you get it to work?

CJ
0
 
aksteveAuthor Commented:
Sure did :0
0
 
DarrenSchwarzCommented:
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
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 8
  • 8
Tackle projects and never again get stuck behind a technical roadblock.
Join Now