2014-02-14 6 views
2

У меня есть следующая структура элементов:доступа контейнер родительского элемента Iframe (Iframe внутри IFrame)

<div class="container"> 
    <iframe class="outer"> 
    .. 
     <iframe class="inner"> 
     actual markup with scripts here 
     </iframe> 
    </iframe> 
</div> 

с использованием чистого JavaScript, я meneged, чтобы выйти из «внутреннего» фрейма в космическое одно:

//this is HTML tag of ".outer" iframe 
var parent = window.parent.document.getElementsByTagName('html')[0]; 

но все же мне нужно добраться до элемента «.container», чтобы управлять им. Может ли кто-нибудь сказать мне, как получить элемент «.container» из скрипта внутри элемента «.inner»?

ответ

5

Может быть, это:

var outer = window.parent; 

var mainWindow = outer.parent; 

var container = mainWindow.document.getElementsByClassName('container')[0]; 

, но не забывайте, что ваши фреймы должны быть на том же домене.

+0

Спасибо. Теперь играя с кросс-доменными запросами :) – Kamilius

1

Я хотел бы попробовать

var containerElement = window.frames.top.top.document.getElementsByClassName('container')[0]; 

Но будьте осторожны: Если вы пытаетесь вырваться из вашего кадра и хотите получить доступ к документу с другим доменом, портами или протоколом, ваш браузер (надеюсь) будет вернуть исключение, подобное этому:

Uncaught SecurityError: Blocked a frame with origin "null" from accessing a frame with origin "null". Protocols, domains, and ports must match.

+0

как это случилось. Так что я использую easyxdm, чтобы прорваться :) – Kamilius

Смежные вопросы