2013-05-23 4 views
1

В родительском окне у меня есть:JQuery доступа к данным() из window.parent из фрейма

<input type=text size=100 id="picker1" data-listoption="1" data-type="size"> 

затем внутри фрейма у меня

<script> 
    $(document).ready(function(){ 

    var parent_input = $("#picker1", window.parent.document); 
    var searchdata = $(parent_input).data(); 
     var listtype = $(parent_input).data('listoption'); 
    console.log(searchdata); 
     console.log(listtype); 


});  

и оба выхода в консоль пуста. Что здесь отсутствует?

+0

вы не можете получить доступ к DOM другого (родительского) кадра. –

+0

Вы уверены, что можете выделить селектор родительским окном? –

+0

не уверен, чего вы пытаетесь достичь, но попробовали ли вы html(), а не data()? также, находится ли он в той же области? возможно, он недоступен. – Ted

ответ

2

JQuery не предоставляет возможность охвата селектора с использованием родителя окна. Но вы можете получить доступ к jQuery на родительском элементе из дочернего элемента, используя parent.

Try:

var parent_input = parent.$("#picker1"); 
var searchdata = $(parent_input).data(); 
var listtype = $(parent_input).data('listoption'); 
console.log(searchdata); 
console.log(listtype); 

Рабочий примерhttp://jsfiddle.net/AEj4Z/

+0

Я получаю TypeError: window.opener имеет значение null при попытке его с помощью window.opener. $ (" # Picker1 "); –

+0

@BethB Я предоставил скрипку, но, возможно, неправильно понял ваш запрос, я думал, что вы используете новое окно, а не iframe. –

+1

'window.opener' предназначен для доступа к открывающемуся окну всплывающего окна. Но просто использование 'window.parent' или просто' parent' должно работать, я отредактировал ваш ответ в этом отношении. Очевидно, что для включения в родительское окно требуется также jQuery. – CBroe

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