jQuery: кадр Доступа во вложенном frameset

У меня есть документ, который имеет вложенный 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>

К сожалению, я не могу изменить код, именно поэтому я должен получить доступ к нему с jQuery. Я попытался записать селектор jQuery для доступа к кадру "sq_main", но никакой удаче до сих пор:

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

Идеи о том, как выполнить развертку в эту ужасную структуру?:)

12
задан Nic Hubbard 31 May 2010 в 06:55
поделиться

2 ответа

Старайтесь перемещаться по одному шагу за раз. IIRC, массив frames работает только с iframe . Попробуйте вместо этого селектор frame [name = 'sq_main'] .

Пример от Ронни Шерера :

var frameDocument = $('frame[name="mainFrame"]', top.document)[0].contentDocument;
$(frameDocument).find('body').prepend('<h1>TEST!!!!</h1>');
11
ответ дан 2 December 2019 в 20:15
поделиться
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!
5
ответ дан 2 December 2019 в 20:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: