[英]hash link reloads page
我有一個安裝在第三方網站上的代碼片段。 我無法深入了解細節,但它通過使用<script>
標簽將 HTML、CSS 和 JS 加載到頁面上。
部分代碼是一個 JS 函數,當點擊這個鏈接時會執行:
<a href="#">?</a>
如果頁面上有阻止函數執行的 JS 錯誤,單擊鏈接顯然只是將哈希添加到 URL 並將用戶帶到頁面頂部。 這是預期的回退行為。
但是,在一個存在大量 JS 錯誤的第三方站點上,單擊該鏈接會刪除頂級域之后的所有內容、添加哈希值並定向到該頁面(主頁)。 例如,該鏈接會將用戶從:
http://www.example.com/2010/05/14/very-interesting-blog-post/
到
http://www.example.com/#
值得注意的是,該問題發生在 Firefox 和 Chrome 中,而不是 IE9。 我知道沒有更詳細的代碼可能無法正確診斷問題,但我不能隨意提供它。 我只是希望對這種奇怪的瀏覽器行為得到某種合理的解釋。
如果它有幫助,那么有問題的網站是一個 WordPress 博客。 提前致謝。
編輯:這顯然不是由網站上的任何 JS 引起的,因為關閉 JS 並添加與檢查器的鏈接會產生相同的行為。
我有一個類似的錯誤,點擊任何<a href="#">
會導致整個頁面重新加載。 我設法通過從頁面的<head>
中刪除<base href="/">
標簽來解決這個問題。 我找不到任何有關此的信息(還)。 如果我能找到任何其他信息,我會添加更多。
當您使用 windows.onpopstate 處理后退或前進按鈕並使用 ajax 加載頁面時,會發生此問題。 嘗試解決處理歷史記錄的 js 代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.