Nic*_*ard 12 javascript jquery frames frameset
我有一个具有嵌套框架集的文档.我需要访问其中一个名为"sq_main"的嵌套框架,并访问此框架内的内容.这是我的结构:
<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>
Run Code Online (Sandbox Code Playgroud)
遗憾的是,我无法更改代码,这就是我需要使用jQuery访问它的原因.我试图编写一个jQuery选择器来访问"sq_main"框架,但到目前为止没有运气:
$('body', parent.frames[0].sq_main).prepend('<h1>TEST!!!!</h1>');
Run Code Online (Sandbox Code Playgroud)
关于如何深入挖掘这个丑陋结构的想法?:)
Aar*_*lla 11
尝试一次导航一步.IIRC,该frames阵列仅适用于iframes.请尝试使用选择器frame[name = 'sq_main'].
var frameDocument = $('frame[name="mainFrame"]', top.document)[0].contentDocument;
$(frameDocument).find('body').prepend('<h1>TEST!!!!</h1>');
Run Code Online (Sandbox Code Playgroud)
小智 5
var sql_mainJQ = $("frame[name='sql_main']", top.document);
//$('body', sql_mainJQ.contents()).prepend("TEST!!!!"); // :( Bad
var frameContent = sql_mainJQ[0].contentDocument;
if ($.browser.msie) {
frameContent = mainFrameJQ[0].contentWindow.document;
} else {
frameContent = mainFrameJQ[0].contentDocument;
}
$('body', sql_mainJQ.contents()).prepend("TEST!!!!"); // :> Maybe OK!
Run Code Online (Sandbox Code Playgroud)