我的iframe嵌入這樣的:移除焦點與iframe頁面加載
<iframe id="foo" src="http://www.something.com" style="width: 90%; height: 300px"></iframe>
每次頁面加載重點會從頁面頂部丟失,切換到這種I幀是在頁腳。我想知道如何從這裏刪除焦點,並使頁面加載「正常」?
謝謝!
更新:是的,IFRAME是從其他來源(不是同一個域)
我的iframe嵌入這樣的:移除焦點與iframe頁面加載
<iframe id="foo" src="http://www.something.com" style="width: 90%; height: 300px"></iframe>
每次頁面加載重點會從頁面頂部丟失,切換到這種I幀是在頁腳。我想知道如何從這裏刪除焦點,並使頁面加載「正常」?
謝謝!
更新:是的,IFRAME是從其他來源(不是同一個域)
如果假定iframe不是從相同的域提供的..您可以將其他可調焦的dom元素放置在頁腳中的iframe之後,autofocus
設置爲true
。如果還是不行,請嘗試在父主窗口如下:
$(window).on('load', function() {
setTimeout(function(){$("body").focus()}, 100);
};
或香草JS去
window.onload = function() {
document.getElementById("some-focusable-element-from-parent-window").focus();
};
身體沒有相關的onload事件,我想你的意思是'窗口'對象而不是 –
@A。沃爾夫......謝謝..更正... – dopeddude
加載假設你有一個相同的域iframe:
你可以這樣做:
$("#foo").on('load', function() {
$("body",parent.document).focus()
};
聽起來像一個跨域iframe,並認爲這是一個輸入屬性爲'自動對焦'設置 –
那麼有太多的事情可以做,例如在窗口load我們滾動到頂部與scrollTop函數,...等 但是,通過這種方法,當我們取消焦點,並在窗口完全加載時返回頂部時,它將帶來毛刺和沒有良好的效果。 經過一段時間的思考和經驗,我來與:
我們刪除iframe與顯示:無,當DOM準備好了。接下來,當窗口完全加載時,我們將它帶回。要做到這一點efficienly,我們寫的樣式類這樣的:
.display_none{
display:none;
}
,我們將這個類添加到我們的iframe,當文檔準備好,當窗口完全加載刪除此類。有代碼:
$(document).ready(function(){
$("#myFrame").addClass("display_none");
$(window).load(function(){
$("#myFrame").removeClass("display_none");
});
});
現在有一種情況,這將無法正常工作!如果iframe被創建並添加了另一個腳本,那麼可以加載dom,但不能加載iframe元素本身(因爲腳本可能還沒有創建它)!我的情況就是這樣。
SOLUTION: 把IFRAME在一個容器中,讓說DIV容器,並應用上面這個容器的製造方法。所有人都應該工作鎳!在dom加載時,div被隱藏起來,接下來當窗口完全加載時,它將它恢復原狀!你會得到你的iframe,它將被加載並顯示出來。沒有小故障,高效。
http://stackoverflow.com/a/15793882/859154 –
你能分享iframe的正確URL嗎? –