2011-08-24 95 views
6

我想使用iframe在我的網站上顯示一個頁面的內容,但我想「剪掉」頁面的頁眉(頂部)部分,而忽略它的導航欄,所以用戶只能看到它下面的內容。刪除一些iframe的src內容

代碼:

<div id="content"> 
    <div style="height:800px;"> 
     <iframe id="optomaFeed" src="http://www.optomausa.com/company/press-releases/" scrolling="auto" 
      frameborder="0" height="100%" width="100%"></iframe> 
    </div> 
</div> 

有什麼辦法,我可以去這樣做? Tyvm〜

+0

http://stackoverflow.com/questions/5676672/how-do-i-crop-the-contents-of-an- iframe-to-show-a-part-of-a-page 是你希望得到的答案 – pashute

回答

13

我想出如何使用CSS屬性clip做到這一點:

<div id="content"> 
    <div style="height:800px;"> 
     <iframe id="optomaFeed" src="http://www.optomausa.com/company/press-releases/" scrolling="no" 
      frameborder="0" height="100%" width="100%" style="position:absolute; clip:rect(190px,1100px,800px,250px); 
      top:-160px; left:-160px;"></iframe> 
    </div> 
</div> 
+1

這似乎很適合頁面的頂部和底部,但它沒有寬度的方式,當我調整瀏覽器窗口...(FYI我在IE8測試,所以我可以看到什麼70%+世界將會看到) – DaveRandom

+0

當然,我還沒有嘗試調整窗口的大小,現在我在FF中執行它。它在IE中沒有正確顯示,所以我做了一些調整。在正確的軌道雖然:)感謝您的輸入 –

+0

什麼剪輯讓你,負面的頂部不? – httpete

0

如果導航欄容器有一個id,您可以通過javascript獲取對它的引用,然後在其上調用parentNode.removeChild()。這意味着每次在iframe中更改頁面時,導航欄可能會閃爍一秒。

或者,您可以通過加載它的服務器端腳本傳遞iframe的加載,去除導航欄的HTML,然後輸出結果。這可能會減慢用戶與頁面的交互,因爲這意味着所有需要加載兩次的有效內容。如果你打算採取這種方法,你可能需要添加一個<base>標籤,以免破壞CSS/JS。

+0

我試着第一個建議atm。我希望有一個更簡單的解決方案。像使用div和樣式或東西來剪裁iframe本身 –

+0

@Shredder我想不出任何實際的方法來做到這一點,沒有滾動條,保證頁面在框架內的正確位置,你看不到導航,但你可以看到你想要的內容。我剛剛嘗試了第一個想法,但它不起作用,因爲當iframe中的頁面未從您的域加載時,瀏覽器禁止訪問「contentWindow.document」。周圍沒有我能想到/發現的工作。唯一的選擇是我認爲的代理腳本... – DaveRandom

+1

我想明白了<_ <;檢查我的答案 –