2015-09-06 55 views
-3

我想知道是否有可能使一個鏈接與<a>標籤不顯示其URL鏈接?如何使隱藏URL

換句話說,我想要一段隱藏或混淆鏈接到的URL的HTML。

我發現this StackOverflow question,但我更喜歡該鏈接將工作在所有瀏覽器(不只是鍍鉻),並沒有一個彈出。我已經可以訪問jQuery,Bootstrap和PHP 5.5。

任何幫助,將不勝感激。

更新:我覺得這需要澄清。我不希望它以任何方式顯示 - 即,這是一個不能共享的鏈接,所以我不能簡單地使用重定向,只是在將網址懸停時隱藏網址 - 我不希望它在源代碼中可見無論是。對不起,任何不便:(

感謝,

ICT

+0

那麼您是指刪除地址欄,還是僅僅在地址欄中屏蔽當前URL(通過鏈接訪問)? –

+0

@CallanHeard嗯,我不特別希望它以任何方式可見,包括查看源代碼。如果有幫助,我也可以訪問PHP 5.5和PHP 5.4。 – ICTman1076

+0

完全不能隱藏URL,它必須位於某處。 – kappaallday

回答

0

你可以使用一個URL minifier像這樣的:https://goo.gl/

+0

我不認爲這會起作用,因爲他們可以分享縮小的鏈接。但無論如何謝謝你的答案:) – ICTman1076

+0

好吧,我認爲你只需要在第一個視圖「隱藏」真實地址,而不是保護共享。我不認爲你可以找到任何安全的方式來保護使用JavaScript的鏈接。您應該使用服務器端用戶和會話管理。 – codename44

0
<a data-link="some link here"></a> 

$('a').on('click',() => { 
    window.location.href = $(this).attr('data-link'); 
}); 

用戶將不會看到該鏈接,而它徘徊。

+0

它會在點擊後隱藏鏈接,還是需要做其他事情才能實現? – ICTman1076

+0

你可以很容易地隱藏它,只需添加'$(this).hide()'。 – kappaallday

1

可以捕獲在封閉隱藏它的鏈接,然後還有點窗口點擊<a>時,爲前充足的

function hideLink(anchor) { 
 
    var href = anchor.getAttribute('href'); 
 
    anchor.removeAttribute('href'); 
 
    anchor.className += ' pseudolink'; 
 
    
 
    anchor.addEventListener('click', function (e) { 
 
     e.preventDefault(); 
 
     window.location.href = href; 
 
    }); 
 
} 
 

 
window.addEventListener('load', function() { 
 
    hideLink(
 
     document.getElementById('my_link') 
 
    ); 
 
});
.pseudolink { 
 
    color: blue; 
 
    cursor: pointer; 
 
    text-decoration: underline; 
 
}
<a id="my_link" href="http://google.com">Hover over me</a>

+0

已經有2個相同的實現的答案,你爲什麼寫這個? – kappaallday

+0

我剛剛嘗試過這一點,我擔心它沒有我想要的行爲 - 該鏈接仍然通過源代碼可見,但無論如何,謝謝。 – ICTman1076

+0

@ ICTman1076即使您使用AJAX加載加密數據,客戶端也需要一個解密庫,並且通過其控制檯(斷點)/網絡選項卡(訪問時)可以看到訪問它,但無法使鏈接不出現在任何地方。但是,您可以將鏈接設爲「可以使用」,這是支付服務在商家和支付提供商之間彈跳時的工作方式,鏈接中有一個唯一的ID,只有幾分鐘的時間,並且訪問服務器時會撤消ID 。根據您的使用情況,您可以在會話數據中存儲此類ID,例如在PHP –

0

這是不可能完全隱藏您嘗試導航到URL。該URL必須以某種形式出現 - 例如<a>-標記的'href'屬性,以告知瀏覽器要導航到的位置。

然而,也可以訪問您的服務器設置,以掩蓋URL。使用.htaccess文件可以將輸入的URL重定向到另一個URL,同時將輸入的URL保留在瀏覽器的地址欄中。網上有很多來源解釋如何做到這一點。

只需處理使用PHP文件內的一些邏輯的每個鏈路可以是適合於遮蓋在源的鏈接。例如,您可以將每個鏈接發送到handler.php,並指定要導航到哪個頁面的值,即handler.php?page=1。然後

handler.php將包含沿着線的東西:不知道,他們已導航到URL的

<?php 
if ($_GET['page'] == 1) header('Location: /where/you/want/to/go'); 
if ($_GET['page'] == 2) header('Location: /where/else/you/want/to/go'); 
?> 

通過這種方式,用戶不會知道該鏈接實際上去和(使用.htaccess設置)。

+0

有趣,但我不相信這完全回答了我的問題。不管怎樣,謝謝你。 :) – ICTman1076

+0

@ ICTman1076啊對不起,我剛剛看到你的更新關於鏈接不被共享/重定向 –

+0

它確實,但我仍然必須把redirecter鏈接放到源代碼中,這意味着用戶有能力簡單地複製/粘貼並共享重定向器鏈接。附:沒關係 :) – ICTman1076