Get Y position of an element in an iframe
我认为已经有人问过这个问题,我有一个iframe页面,其中有近10个文本字段,每当用户点击任一文本字段时,我都想知道该页面的Y位置。
有可能吗?
这未经测试,但应该为您指明正确的方向。
jQuery
1 2 3 4 5 6 7 8 9 10 | $(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,以使其更易于定位,然后:
1 2 3 4 5 6 7 8 | 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; }) }) |
如果主窗口和iframe内容都在相同的协议/域中,则可以直接访问iframe的contentBody并获取输入字段的scrollTop位置。
例如:
1 | var y = $('iframe').contents().find('#myInputField').offset().top; |