Я пытаюсь сопоставить положение и размер двух элементов в двух разных фреймах на одной родительской странице, но я не уверен, как это сделать.
С помощью следующего кода мне удалось сопоставить положение и размер div ("div_parent_page ') на родительской странице с положением элемента (' element_in_iframe-1" strong >) внутри iframe ('iframe-1') на той же родительской странице:
function myFunction() {
function getOffset( el ) {
var _x = 0;
var _y = 0;
while( el && !isNaN( el.offsetLeft ) && !isNaN( el.offsetTop ) ) {
_x += el.offsetLeft - el.scrollLeft;
_y += el.offsetTop - el.scrollTop;
el = el.offsetParent;
}
return { top: _y, left: _x };
}
var positionInfo = ( document.getElementById('iframe-
1').contentWindow.document.getElementById('element_in_iframe-1')
).getBoundingClientRect();
var yheight = positionInfo.height;
var xwidth = positionInfo.width;
var x = getOffset( document.getElementById('iframe-
1').contentWindow.document.getElementById('element_in_iframe-1') ).left;
var y = getOffset( document.getElementById('iframe-
1').contentWindow.document.getElementById('element_in_iframe-1') ).top;
var d = document.getElementById('div_parent_page');
d.style.position = "absolute";
d.style.left = x+'px';
d.style.top = y+'px';
d.style.width = xwidth;
d.style.height = yheight; `
}
var timer = setInterval(myFunction, 1000);
Теперь я помещаю еще один iframe ('iframe-2') в упомянутый выше div, и моя цель - сопоставить положение и размер элемента ('elementXXX' ) внутри iframe-2 внутри div с позицией и размером element_in_iframe-1. Я добавил код ниже:
var v = document.getElementById('iframe-
2').contentWindow.document.getElementsByClassName('elementXXX');
v.style.position = "absolute";
v.style.left = x+'px';
v.style.top = y+'px';
v.style.width = xwidth;
v.style.height = yheight;
}
Судя по всему, это не сработало, но я не уверен, как этого добиться. Надеюсь, вы, ребята, просветите меня, потому что я действительно бабушка в программировании. Спасибо ~
iframe
src
и родительскогоlocation.href
одинаковое происхождение? - person guest271314   schedule 09.06.2017MessageChannel
илиWorker
- person guest271314   schedule 09.06.2017