從URL

2016-07-07 49 views
0

刪除哈希我有以下代碼:從URL

jQuery(document).ready(function($) { 
    $('.tab-title').on('click', function(e) { 
     window.location.hash = $(this).attr('href'); 
     e.preventDefault(); 
    var _self = $(this); 
    $('.tab').removeClass('active'); 
    _self.parent().addClass('active'); 
    }); 
}); 

和我的PHP

<div class="tab active"> 
    <a href="<?php the_field('service_name');?>" class="tab-title"><?php the_field('service_title'); ?></a> 
</div> 
<div class="tab-content"> 
<h2><?php the_field('service_title'); ?> </h2> 
    <p><?php the_field('service_desc'); ?></p> 
    <p><?php the_field('service_area');?></p> 
</div> 

網站的網址:mysite.com/services/marketing/#internet

的問題是(#),其中包括在該網站的網址。有沒有可能從URL中刪除這個?

+0

你想只刪除#或#internet嗎? – Sree

+0

但你明確地在你的代碼中設置它。你只是不想設置它,即刪除'window.location.hash'行或其他東西?它確實起到了一定的作用:假設您具有相同的代碼來處理啓動過程中的代碼,它允許已加書籤或複製/粘貼URL的人回到正確的選項卡。 – Rup

+0

@Sree我想刪除(#) – miked

回答

4

試試這個:

history.pushState("", document.title, window.location.pathname); 

EDITED

如果你想只#從URL中移除嘗試下面的代碼:

history.pushState({}, document.title, location.href.replace('#', "/")); 

的pushState的()方法

pushState()有三個參數:一個狀態對象,一個標題(當前被忽略)和(可選)URL。讓我們來看看這三種參數的詳細信息:

  • 狀態對象:狀態對象是一個JavaScript對象,它是與()由pushState的創建新的歷史條目相關 。 只要用戶導航到新狀態,就會觸發POPSTATE事件 ,並且事件的狀態屬性包含歷史記錄條目狀態對象的副本。

    狀態對象可以是任何可以序列化的對象。由於 Firefox會將狀態對象保存到用戶的磁盤,以便在用戶重新啓動瀏覽器後可恢復爲 ,所以我們在對象的狀態 的序列化表示上強加了一個640k字符的大小限制 。如果你傳遞一個狀態對象的序列化表示是 大於這個pushState(),該方法將拋出一個異常。 如果您需要比此更多的空間,建議您使用sessionStorage和/或localStorage 。

  • 標題: Firefox目前忽略此參數,雖然它可能在將來使用 。在這裏傳遞空字符串應該是安全的 ,以防未來對方法的更改。或者,您可以通過一個 簡短標題爲您正在移動的狀態。
  • URL:新的歷史記錄條目的URL由此參數給出。注意 瀏覽器在調用012Strender()後不會嘗試加載此URL,但它可能會嘗試稍後加載URL,例如在用戶重新啓動瀏覽器後加載該URL。例如, 。新的網址不一定是 絕對;如果它是相對的,則相對於當前的 URL解析。新的URL必須與當前網址的來源相同;否則,pushState()將引發異常。該參數是可選的 ;如果未指定,則將其設置爲文檔當前的 URL。

看這更多信息History_API

+1

我認爲你是對的他希望使用歷史API,但是看起來他希望網址末尾的選定選項卡名稱也是這樣 - 在標題中我也猜到 - 我看到'null'比'「」更常見,因爲沒有數據。 – Rup

+0

@Rup我更新了代碼 – miked

+0

@MikeD我編輯了答案。增加了一些關於'pushState'方法的細節。請查看更多信息:) –

0

多小時後,用清醒的頭腦我找到解決方案。

jQuery(document).ready(function($) { 
    $('.tab-title').on('click', function(e) { 
     window.location.hash = $(this).attr('href'); 
     history.pushState({}, document.title, location.hash.replace('#', "/")); 
     e.preventDefault(); 
    var _self = $(this); 
    $('.tab').removeClass('active'); 
    _self.parent().addClass('active'); 
    }); 
}); 

然後我按照手動方式爲我的網頁添加我的網址。