2012-01-31 120 views
1

我想將我的頁面與條件上的其他頁面鏈接起來。如何在HTML中創建條件超鏈接

假設我有3個HTML頁面,即1.HTML2.HTML3.html。我想的是,如果1.HTML加載然後加載頁面2.HTML;如果1.html未加載,則加載3.html

請大家幫忙。

+1

所以你要檢查是否1.HTML可以加載,即文檔是否存在呢? 請重新說明這個問題。 – zvona 2012-01-31 07:09:52

回答

1

我不能跟你約1,2和3頁的解釋,但在一般意義上,你可以有一個超鏈接去取決於通過處理它「的onclick」事件取消某個條件(或多個)不同的URL默認的導航並做到這一點從JavaScript來代替:如果已禁用JavaScript

<a href="defaulturlhere" onclick="doClick(); return false;">My link</a> 

<script> 
function doClick() { 
    if (someCondition || someOtherCondition) 
     window.location.href = "firstURLhere"; 
    else 
     window.location.href = "alternativeURLhere"; 
} 
</script> 

在錨的href屬性指定的URL將被使用。否則,將調用doClick()函數來決定要導航到哪個URL。當然,該功能可以根據需要簡單或複雜。

onclick需要return false;取消錨點上的點擊的默認行爲,因爲(顯然)默認是導航到href屬性中的URL。

+0

這可能會更好,因爲'onclick =「返回doClick();'',這樣函數就可以控制默認是否遵循。您擁有它的方式,如果偵聽器運行,鏈接將永遠不會遵循。 – RobG 2012-01-31 07:12:54

+0

@RobG - 是的,我知道,但我不得不承認,我並不是很願意詳細討論這個問題(也就是爲什麼我沒有提及備選方案就很容易理解內聯onclick屬性) 。 – nnnnnn 2012-01-31 07:57:31

0

我不完全相信你想要達到的目標。

我想你想顯示只有一些其他的頁面之前打開的網頁上的超鏈接。

如果是這樣的話,你可以在第1頁的window.load創建的cookie,並檢查該cookie被設置在第2頁

如果cookie設置,創建一個動態的windolow.onload事件第2頁的超鏈接將重定向到第3頁。如果cookie未設置,請勿創建鏈接。

您也可以顯示/隱藏超級鏈接(而不是動態創建)depeding上的cookie是否設置與否。如果你不使用jQuery,這是一個簡單而且跨瀏覽器的方式。

參見:http://www.w3schools.com/js/js_cookies.asp

0

它應該是沿着線的東西: 如果在頁面的底部添加腳本時,JavaScript將搜索所有<a>標籤,並將它們與當前url。如果它們匹配,它會將其風格設置爲隱形。

<script> 
linkNodes = document.getElementsByTagName("a"); 

for(i = 0; i < linkNodes.length; i++){ 
    if(linkNodes[i].getAttribute("href") == document.url){ 
    linkNodes[i].style.visibility= "hidden"; 
    } 
} 
</script> 

這樣,如果你是在1.HTML,2.HTML並顯示3.html但不1.HTML本身。同樣的情況對於2.HTML這將只顯示1.HTML和3.html ...等

+0

我沒有測試代碼......因爲我沒有在我的電腦中...請隨時評論任何更改... – edgarator 2012-01-31 07:27:50