Я вызываю функцию в моем JavaScript на onmouseover. В вызов функции я включаю srcElement (который является a-тегом). Теперь мне нужно получить offsetWidth ближайшего Iframe этого a-тега. Но когда я попробую это:
alert($(srcElement).closest('iframe').offset().left);
Я получаю неопределённость! Это тоже не работает:
alert($(srcElement).closest('iframe').attr('title'));
Но это работает и возвращает идентификатор тела внутри iframe:
alert($(srcElement).closest('body').attr('id'));
Это мой вызов функции в html:
showPeopleDetails('User_Matt', event.clientX, event.clientY, event.srcElement);
Это функция JavaScript:
function showPeopleDetailsNow(UserId, x, y, srcElement){
currentwidth = $(document).width();
currentheight = $(document).height();
adjustwidth = $(srcElement).closest('iframe').offset().left;
adjustheight = $(srcElement).closest('iframe').offset().top;
var calculatedheight = currentheight - adjustheight;
var calculatedwidth = currentwidth - adjustwidth;
Сейчас я делаю это так, но это работает только для одной части моей страницы. Поскольку идентификатор генерируется динамически каркасом.
adjustwidth = parent.document.getElementById('ivuFrm_page0ivu0').contentWindow.document.getElementById('ivuFrm_page0ivu2').offsetWidth;
adjustheight = parent.document.getElementById('ivuFrm_page0ivu0').contentWindow.document.getElementById('ivuFrm_page0ivu2').offsetHeight;
Есть ли способ получить смещение из тега body (и будет ли это правильным смещением iframe? Я знаю, что могу получить ширину элемента body, но это не точно с точностью до нескольких пикселей ... Очевидно, еще лучше было бы правильное смещение Ифраме!
Iframe имеет тот же порт, протокол и хост, что и исходная страница. Мне это нужно только для работы с Internet Explorer 8.
Помощь очень ценится!
Обновление: после предложенного решения от Феликса Клинга и scr4ve я обнаружил, что не могу использовать смещение элемента body или html! Поскольку оба смещения возвращают 0, я предполагаю, что элемент Iframe является единственным объектом в dom, который имеет правильное смещение относительно документа. Любые предложения, как получить это конкретное смещение?