2014-11-25 210 views
1

我有一個非常簡單的代碼。我喜歡在我的IFRAMe中隱藏一些DIV。所以我的index.html頁面看起來像這樣,所以整個想法隱藏了Calendar.aspx頁面的頂部和左側面板。有沒有辦法在IFRAME src頁面中隱藏元素?

任何想法我的代碼有什麼問題,或者我應該怎麼做?

<script src="https://code.jquery.com/jquery-1.11.1.min.js"></<script> 

<script type="text/javascript"> 
$(document).ready(function() { 
$("#leftpanel").hide(); 
$("#toppanel").hide 
}); 
(); 
</script> 
<iframe height="800px" width="800px" src="https://domain/Calendar/Calendar%20Color%20Overview.aspx" > 
</iframe> 

回答

1

你可以試試這個:

$('#iframeID').load(function(){ 
    $('#iframeID').contents().find('#leftpanel').hide(); 
    $('#iframeID').contents().find('#toppanel').hide(); 
}); 

或者:如果你想與不同領域的工作

$(document).ready(function(){ 
    $('#iframeID').contents().find('#leftpanel').hide(); 
    $('#iframeID').contents().find('#toppanel').hide(); 
}); 

這種方法是不可能的。

+0

在使用'.find()'之前,它肯定需要使用'.contents()'方法。但即使如此,如果我們違反SOP,它也不會這樣做。 – jAndy 2014-11-25 14:41:33

+0

@jAndy,darn,確實忘了那個部分。將無法跨域,我編輯我的答案;) – Refilon 2014-11-25 14:44:09

+0

以及它是公司內部網站,我現在在我的電腦上測試。所以我在 user3080110 2014-11-25 14:55:55

0

document重點關注當前文檔而不是。您需要通過其content s並在隱藏它們之前查找元素。

$('iframe').load(function() { 
    $('iframe').contents().find('#leftpanel,#toppanel').hide(); 
}); 
+0

我在腳本無法正常工作時添加了這個。是因爲跨域嗎?該網站位於我們公司的Intranet網站上。 – user3080110 2014-11-25 14:58:42

+0

對於CORS(http://enable-cors.org/index.html),在iframe站點上,如果你想在.htaccess文件中添加「Header set Access-Control-Allow-Origin」*「'使用Apache。 – Veve 2014-11-25 15:05:14

0

我通過創建一個將數據發佈到iframe src然後刪除自身onpageload的隱藏窗體來實現此目的。帶有src的iframe(未知)。

我用post發送數據到url。需要完全控制目標域來接收請求。沒有用GET請求嘗試過代碼。

//html 
<div id='deleteForm'> 
<form style='display: none;' class='fakeForm' id='fakeForm' target="target_iframe" action="(iframe url)" method="post"> 
    //(optional) can send data to iframe src as a post request 
    <input type="hidden" name='data' value="data you may want to send"/> 
    <input type="submit" style='display: none;'> 
</form> 
</div> 

<iframe id='target_iframe' src=''></iframe> 

//js 
window.onload = function() { 
    var form = document.getElementById("fakeForm"); 
    form.submit(); 
    var deleteParent = document.getElementById("deleteForm"); 
    deleteParent.remove(); 
} 
相關問題