2016-04-12 21 views
1

これは既に尋ねられていると思いますが、私はほぼ10のテキストフィールドを持つiframeページを持っています。ユーザーがテキストフィールドのいずれかをタップすると、そのページの位置。 これは可能ですか?iframe内の要素のY位置を取得する

+1

は、同じドメイン上のiframe内のコンテンツですか?第二に、あなたはすでに何を試しましたか?あなたはどんな例も提供できますか? – 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)); 
     }) 
     }) 
    }) 

バニラJavascriptを

コメントごとに更新しました。また、テストされていません。

はその後、あなたのiframeそれが簡単にターゲットにするようにするIDを与える:

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

jQueryで少しamatuerですか、これはJavascriptで可能ですか? – user2431170

+0

@ user2431170私の更新された回答を参照してください。 – Lewis

+0

ありがとう@Lewis .. – user2431170

0

を両方の場合は、メインウィンドウとiframeの内容は、あなたが直接アクセスすることができ、同じプロトコル/ドメイン内にありますiframeのcontentBodyと入力フィールドのscrollTop位置を取得します。例えば

var y = $('iframe').contents().find('#myInputField').offset().top; 
関連する問題