Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
172
rated 0 times [  173] [ 1]  / answers: 1 / hits: 34823  / 14 Years ago, mon, may 31, 2010, 12:00:00

I have a document which has a nested frameset. I need to access one of the nested frames, named sq_main, and access content inside this frame. Here is my structure:



<html>
<head>
<title>Title</title>
<meta http-equiv=Content-Type content=text/html; charset=utf-8>
</head>
<frameset rows=28,* frameborder=0 border=0>
<frame src=/_admin/?SQ_BACKEND_PAGE=header name=sq_header scrolling=no marginwidth=0 marginheight=0>
<frameset cols=380,10,* frameborder=0 border=0 id =main_frameset>
<frame src=/_admin/?SQ_BACKEND_PAGE=sidenav name=sq_sidenav scrolling=no marginwidth=0 marginheight=0>
<frame src=/_admin/?SQ_BACKEND_PAGE=resizer name=sq_resizer scrolling=no marginwidth=0 marginheight=0>
<frame src=/_admin?SQ_BACKEND_PAGE=main&assetid=43&sq_from_frontend=1 name=sq_main marginwidth=0 marginheight=0 scrolling=yes>
</frameset>
</frameset>
<noframes></noframes>
</html>


Sadly, I can't change the code, that is why I need to access it with jQuery. I have tried to write a jQuery selector to access the sq_main frame, but no luck so far:



$('body', parent.frames[0].sq_main).prepend('<h1>TEST!!!!</h1>');


Ideas on how to drill down into this ugly structure? :)


More From » jquery

 Answers
37

Try to navigate one step at a time. IIRC, the frames array only works with iframes. Try the selector frame[name = 'sq_main'] instead.



Example by Ronny Sherer:



var frameDocument = $('frame[name=mainFrame]', top.document)[0].contentDocument;
$(frameDocument).find('body').prepend('<h1>TEST!!!!</h1>');

[#96635] Thursday, May 27, 2010, 14 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
leighamarleem

Total Points: 75
Total Questions: 121
Total Answers: 111

Location: Norway
Member since Mon, May 23, 2022
2 Years ago
;