[英]Stop browser from jumping to #name when page loads
我在jQuery對話框中有一個名為“登錄”的表單。 在JavaScript中,我檢測URL中是否包含“ #login”-如果是,它將顯示登錄對話框。 在FF / Safari / Chrome中,它可以正常工作,但在IE6 / 7中,顯示對話框時,瀏覽器頁面會跳到表單頂部。 我想防止這種情況的發生。
我在這里找到了我的問題的答案,它給出了以下示例代碼:
$('a.anchor').remove().prependTo('body');
我將“ a.anchor”更改為“ form.anchor”,但無法正常工作。 首次加載mydomain /#login時,IE仍跳至表單頂部。 然后,如果我刷新頁面,它將再次顯示對話框,但不會跳下來。
任何想法如何全局只是防止IE跳到任何形式/錨名稱?
我建議使用查詢參數或類似的參數,例如page.html?showlogin = true。 URL上的page.html#xxxxx旨在將瀏覽器滾動到頁面上的該ID。
中途http://www.w3schools.com/html/html_links.asp解釋了名稱屬性。
否則,您將進行一些混亂的黑客操作,以繞過瀏覽器執行他們應做的事情。
........不要在代碼中使用不想使用的命名錨點嗎?
有合理的理由使用這種方式使用井號。 在Ajaxian應用程序中,它可以幫助管理瀏覽器歷史記錄。
除非有命名錨點,否則所有瀏覽器(包括IE)都應忽略location.hash,除非IE喜歡跳到具有該ID或NAME的任何元素。 所以如果你有
<form name="login" ...
要么
<form id="login" ...
甚至
<div id="login"><form name="somethingElse"...
可能會導致IE將其視為傳統的哈希標記並跳下來。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.