2012-02-23 286 views
3

我已閱讀關於此主題的各種帖子,並認爲我瞭解通常的失敗點。我發現我的兩個產品縮略圖圖像位於「This Click'n'Pick Set Consistency of The following 2 Products」標題下,可點擊,但不要帶我到頁面下方的名爲<div>的元素。例如,它們導致導航到http://www.premierrange.co.uk/#bundle_product_anchor_448。我在Chrome瀏覽器(18.0.1025.33 beta)和Firefox(10.0.1)上看到了這一點。錨標記跳到哈希不工作

http://www.premierrange.co.uk/index.php?main_page=clicknpick&groups_id=2&chosen_0=243&chosen_1=448

因此,例如,有一個錨定位 '#bundle_product_anchor_243':

<a href="#bundle_product_anchor_243" title="Click here to jump to the 70cm Truly Curved Black Glass Curved Cooker Hood H77-7B"> 
    <img src="http://www.premierrange.co.uk/thumbnailer.php?filename=images/H77-700.jpg&amp;height=100" alt="70cm Truly Curved Black Glass Curved Cooker Hood H77-7B"> 
</a> 

這進一步瞄準<div>下來的頁面:

<div class="productSeparator" id="bundle_product_anchor_243"> 
    <h1>Product number 1 in this bundle of 2 products</h1> 
</div> 

我也試圖使目標<div>內的<h1>代替目標,如果目標必須是內聯元素而不是div,但似乎沒有任何工作。

包含錯誤行爲的<div>在包含目標元素的<div>出現在文檔中時完全關閉。我不認爲在瀏覽器解析<a>的時間點目標元素沒有被定義。

手動在URL中添加「#bundle_product_anchor_448」確實有效。

我知道,由於大量的因素,我無法輕鬆解決該頁面的大量頁面的HTML驗證失敗。我一直認爲這個基本的'跳轉到命名元素'功能應該工作。除了這個小小的導航怪癖之外,該頁面功能完全正常。

任何人有任何線索?

回答

6

嘗試從頁眉中刪除<base href="http://www.premierrange.co.uk/"></base>

<base>標記指定頁面上所有相對URL(不包括http://www.example.com/ ......)的基URL或目標。沒有它,你的鏈接應該按照預期工作,儘管你可能需要修復其他鏈接來適應這種變化。

+0

謝謝Q.表(如果這是你的真名)..刪除''標籤會立即解決問題。我需要基本標記,因爲我使用的SEO模式允許像http://server.com/hobs/30cm/funky-hob這樣的URL。它實際上是從/index.php重寫和提供的,並且該頁面包含許多資源引用到指定的服務器根目錄,沒有前導'/'..樣式表,縮略圖腳本等等..所以我必須非常仔細地解決這個問題。無論如何,好的提示,回答我的問題,謝謝。 – Neek 2012-02-23 06:19:08

2

當使用在應用程序中<base>標籤,最好的辦法是隻使用絕對URL的散列之前,用絕對URL指向你在同一頁。

因此,假設你是「http://example.com/products/curved-glass」頁面上,而不是

<a href="#bundle_product_anchor_243">... 

你需要包括散列之前的絕對當前網址:

<a href="http://example.com/products/curved-glass#bundle_product_anchor_243">...  

在大多數環境中查找當前URL是一項微不足道的任務,並且此方法還可以避免刪除您的<base>標記,這些標記可能會對應用程序的其他方面產生負面影響。