是否有可能在一個滾動的div裏面有一個非滾動的iFrame,並且在iFrame中有錨鏈接能正常工作? iFrame內的錨鏈接應滾動到iFrame內部的位置,我不需要/希望它們指向父頁面上的元素。iframe中的錨鏈接什麼也不做
這裏是我的jsfiddle一個簡單的例子:
http://jsfiddle.net/shopguy/WjmHG/
,併爲它的代碼:
<div style="width: 100%; height: 300px; overflow: auto;">
<iframe style="width: 100%; height: 2000px;" src="http://www.hypergurl.com/anchors.html" scrolling="no"></iframe>
</div>
我有在我的例子使用了hypergurl.com鏈接沒有任何關聯,這只是我能找到的第一個帶有id/name語法鏈接錨點的頁面。
如果加載JSFiddle並單擊iFrame內的「Jump to Bottom」鏈接,它將不執行任何操作(使用FireFox 19.0.2進行測試)。當使用各種頁面進行測試時,它在FireFox中永遠不會工作,在Chrome中它有時會在第一次點擊時運行,但如果再次向上滾動並再次單擊,則不起作用。在IE8中,它大部分時間都在運行(卷軸)。
如果我讓iFrame本身具有滾動條(刪除滾動=「否」),滾動可以正常工作。雖然這對我來說不是一個實際的解決方案,因爲我在框架外有內容,我想用它滾動。在我真實的代碼中,我動態地設置了iFrame的高度來填充它的內容,這樣看起來更像是我的頁面上的內容。
,爲什麼我要做這個附加信息:
我創建一個基於Web的電子郵件客戶端,而且目前似乎是問題最少的,如果我顯示郵件的HTML體內一個iframe,vs試圖在我的頁面內的表格單元格或div內顯示。我想要這些類型的鏈接工作。我對內容有一定的控制權,它來自我的服務器,我可以修改它(但不想太多)。例如,我已經修改了所有鏈接以便在新窗口中打開(但不包含以#開頭的鏈接,所以這不是我的問題)。
我知道GMail不使用iFrames,但是我的XFINITY(通過Comcast電纜)基於Web的電子郵件客戶端可以,他們設法使這些工作正常(但到目前爲止還沒有弄清楚他們在做什麼)。
https://bugzilla.mozilla.org/show_bug.cgi?id=638598可能是相關的,但我在web-kit瀏覽器中也看到了這一點,而不僅僅是Mozilla。另外,我看過沒有這個問題的網頁。那些工作的確可以從JavaScript加載iFrame內容,而不是通過src屬性,所以也許只有在我將設計更改爲(需要很多工作)時纔有效。 – eselk 2013-03-26 20:37:02