获取iframe中元素的Y位置

时间:2016-04-12 16:12:27

标签: javascript html angularjs iframe

我认为已经有人问过,我有一个iframe页面,我们有近10个文本字段,每当用户点击任何一个文本字段时,我想知道该页面中的Y位置。 这可能吗?

2 个答案:

答案 0 :(得分: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添加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;
  })
})

答案 1 :(得分:0)

如果主窗口和iframe内容都在同一协议/域内,则可以直接访问iframe的contentBody并获取输入字段的scrollTop位置。

例如:

var y = $('iframe').contents().find('#myInputField').offset().top;