2017-02-21 65 views
0

我有一個使用iFrame加載靜態HTML頁面的JSP頁面。現在我正在嘗試使用jQuery動態更改其中一個DIV(在靜態HTML頁面中)的對齊方式。但它不工作。document.getElementbyID爲iFrame中的DIV返回NULL

var divEnbref = document.getElementById("enbref"); 
if(divEnbref!=''){ 
    $('#enbref').css("text-align" , "left"); 
} 

DIV

<div id="enbref">Some Content</div> 

有人可以幫助我。

+0

只有標題中的錯字。但爲什麼當你有jQuery加載時使用它?它永遠不會是空白的。嘗試'if($('#enbref').length> 0){('#enbref').css(「text-align」,「left」); }' – mplungjan

+0

我想應用樣式的DIV在iFrame內。這會工作嗎? –

+0

想補充一點。靜態HTML來自不同的域,並能夠得到任何錯誤的資源,即http代碼是200.但是,當我嘗試從iFrame訪問文檔參考我得到錯誤。 –

回答

0

使用.innerHTML讓你的div的內容

var divEnbref = document.getElementById("enbref").innerHTML; 

然後使用條件語句

if(divEnbref!=''){ 
    $('#enbref').css("text-align" , "left"); 
} 
0

當你在選擇內部iframe元素,您需要首先選擇的iframe。

document.getElementById('myframe1').contentWindow.document.getElementById('enbref') 

試試這個..

+0

謝謝。我累了,但我得到拒絕訪問和權限,當我嘗試調用var iFrameDoc = iFrame.contentDocument;或者 var iFrameDoc = iFrame.contentWindow.document;由於這個iFrameDoc是未定義的。還有其他選擇嗎? –

+0

您是否正在加載來自不同域的iframe文檔?或者父母和iframe都在同一個域上? –

+0

iFrame內容來自不同的域。 –

0

試試這個:

var divEnbref = document.getElementById('enbref'); 

document.getElementById('enbref').style.textAlign = "right"; 

我在小提琴嘗試這樣:https://jsfiddle.net/mgs4y3px/

也許這將幫助你!

相關問題