2016-04-12 3 views
1

Я думаю, что это уже было задано, у меня есть страница iframe, где у нас есть почти 10 текстовых полей, когда пользователь нажимает на любое текстовое поле, я хотел бы знать Y позиции на этой странице. Возможно ли это?Получить Y позицию элемента в iframe

+1

ли содержание в пределах фрейма на том же домене? Во-вторых, что вы уже пробовали? Можете ли вы привести какие-либо примеры? – Lewis

+0

Являются ли оба файла на одном сервере/домене? –

+0

@ Lewis, да, это в том же домене. Я пытался в реальном коде, не было никакого примера, чтобы опубликовать его здесь, извините. – user2431170

ответ

1

Это не проверено, но должно указывать на вас в правильном направлении.

JQuery

$(document).ready(function(){ 
     var iframe = $('iframe'); 
     var inputs = iframe.find('input'); 

     $.each(inputs, function(){ 
     $(this).click(function(){ 
      console.log($(this).offset().top)); 
     }) 
     }) 
    }) 

Vanilla Javascript

Дополнение за комментарий. Также непроверено.

Дайте IFrame идентификатор, чтобы облегчить таргетинг, то:

var iframe = document.getElementById('iframe'); 
var inputs = Array.prototype.slice.call(iframe.getElementsByTagName('input')); 

inputs.forEach(function(input,i){ 
    input.addEventListener('click', function(){ 
    console.log(this.getBoundingClientRect().top; 
    }) 
}) 
+0

Немного amatuer в jQuery, возможно ли это в Javascript? – user2431170

+0

@ user2431170 См. Мой обновленный ответ. – Lewis

+0

Спасибо @Lewis .. – user2431170

0

Если оба, главное окно и содержание IFrame находятся в пределах того же протокола/домена, то вы можете получить прямой доступ содержимое contentBody iframe и получить позицию scrollTop для поля ввода.

Например:

var y = $('iframe').contents().find('#myInputField').offset().top; 
Смежные вопросы