我在onmouseover中調用javascript中的函數。在函數調用中,我包含srcElement(它是一個a-tag)。現在我需要獲取該標籤最接近的Iframe的offsetWidth。但是當我嘗試這個:Jquery獲取最接近的()返回undefined的A-tag的Iframe
alert($(srcElement).closest('iframe').offset().left);
我得到undefined!這不起作用或者:
alert($(srcElement).closest('iframe').attr('title'));
但這個工程並返回iframe的身體裏面的id:
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;
現在我正在這樣做,但這隻適用於我的網頁的一部分。由於id是由框架動態生成的。
adjustwidth = parent.document.getElementById('ivuFrm_page0ivu0').contentWindow.document.getElementById('ivuFrm_page0ivu2').offsetWidth;
adjustheight = parent.document.getElementById('ivuFrm_page0ivu0').contentWindow.document.getElementById('ivuFrm_page0ivu2').offsetHeight;
有沒有什麼辦法讓從身體標記(偏移,這將是正確的iframe的偏移?我知道,我能得到身體元素的寬度,但它是不準確由幾個PX ...顯然,更好的將是Iframe的正確偏移量! Iframe與原始頁面具有相同的端口,協議和主機,我只需要它與Internet Explorer 8一起工作。 幫助很多讚賞!
更新:從Felix Kling和scr4ve提出的解決方案後,我發現我不能使用body元素或html元素的偏移量!因爲兩個偏移量都返回0,所以我假設Ifram e元素是dom中唯一具有相對於文檔的正確偏移量的對象。任何建議如何獲得具體的抵消?
問題是'iframe'屬於外部文檔而不是內部文檔。'iframe'不存在於內部文檔層次結構中,'html'始終是最頂層的。 –