【问题标题】:Get Y position of an element in an iframe获取 iframe 中元素的 Y 位置
【发布时间】:2016-08-03 09:20:02
【问题描述】:

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

【问题讨论】:

标签: javascript html angularjs iframe


【解决方案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;
  })
})

【讨论】:

  • 我是 jQuery 的小初学者,这在 Javascript 中可行吗?
【解决方案2】:

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

例如:

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

【讨论】:

    猜你喜欢
    • 2022-08-02
    • 1970-01-01
    • 1970-01-01
    • 2017-07-05
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2013-11-07
    • 1970-01-01
    相关资源
    最近更新 更多