簡體   English   中英

哈希鏈接重新加載頁面

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM