2010-08-27 75 views
3

在頁面上,我有一個包含輸入框的Iframe,如果我在FireFox中選擇其中一個框並使用document.activeElement,我將獲得IFrame。那好吧,我只是使用該IFrame並獲取其contentDocument,保存它,然後再次做activeElement,現在我得到輸入框。document.activeElement在Chrome和Safari中返回正文

但是,在Chrome和Safari中,當我選擇IFrame內的其中一個框並執行document.activeElement時,我得到了body元素。如果我選擇IFrame外的元素,document.activeElement可以完美地工作。

如何獲得我的情況下的活動元素?

回答

1

不知道這是否適用於您,但您可以嘗試類似的方法。另外,我相信你會被綁定到下面的方法相同的域名限制。

function showme() { 

    var currentDoc = document; 

    if (document.activeElement == document.body) { 
     currentDoc = window.frames['child-iframe'].document; 
    } 

    if (currentDoc.activeElement.type == "text" 
     || currentDoc.activeElement.type == "textarea" 
     || currentDoc.activeElement.type == "checkbox") { 
     currentDoc.activeElement.style.color = "red"; 
    } 

} 


window.onload = function() { 
    setTimeout("showme()", 5000); 
} 
相關問題