Deepan Chakravarthy
Deepan Chakravarthy

Reputation: 4344

How do I cd into an iframe in chrome developer tools or firebug lite in chrome?

when I try cd, console says "cd is not defined"

Upvotes: 14

Views: 12821

Answers (3)

Carter
Carter

Reputation: 306

For people using firefox, cd() does not work.

Instead, a possible solution is to call eval() on the iframe's contentWindow to run javascript in the context of the iframe.

var frame = document.getElementById("MyIframe").contentWindow;
frame.eval("alert(1);");

Upvotes: 0

Paul Irish
Paul Irish

Reputation: 49242

In Chrome Devtools, the "context switcher" is available at the bottom of the page. See the <top frame> dropdown? In there you can change where your script is executing from. This is the same, effectively, as cd().

This is explained more in https://stackoverflow.com/a/8581276/89484

Upvotes: 13

Mohsen
Mohsen

Reputation: 65845

Yes, you are right Firebug have this awesome command. I really like it. It's making wotking with iframes much easier. Personally I don't go to Firefox just because the cd() is available in it because I can do whatever I can do with cd in chrome dev tools too.

Just use contentWindow keyword in your command prompt to access the iframe window Object. Then you will be good to access any function and variable out there.

For example I have a variable in my iframe that is not accessible via console normally.

But still I can access to the variable via contentWindow like this:

theIfraem.contentWindow.secret;

enter image description here

If you want to fire a function do this:

theIframe.contentWindow.myfunc();

If you want to define some variables(the hardest one):

var script = document.createElement('scrept');
script.innerHTML = "var secret = 'hi'";
theIframe.contentWindow.document.body.appendChild(script);

This is what cd() actually does. I know it's not as good as Firebugs cd(). But the good news is cd() is coming to Chrome

Upvotes: 7

Related Questions