2012-02-08 39 views
0

我們在PHP項目的某些部分使用JSON。編輯部分已通過JSON編程,所以在href部分包含類似下面:如何根據Javascript是否啓用採取不同的方法?

<a href="javascript:void(0);" id="button">Edit</a> 

我們要檢查,如果禁用JavaScript然後更改URL爲遵循,因爲上面的鏈接不會,如果JS工作被禁用:

<a href="./edit.php?id=12&text=some_text_here" id="button">Edit</a> 

我們嘗試了<noscript>,但我們沒有獲得成功。如何做到像上面這樣的事情,我們被困在這裏。
我很欣賞。

回答

0

你可以做這樣的事情:

<a href="./edit.php?id=12&text=some_text_here" id="button">Edit</a> 
<script type='text/javascript'> 
    // ...or however you assign a click handler to the element 
    document.getElementById('button').onclick = function() { 
    // Do Javascript stuff here 
    return false; 
    }; 
</script> 

如果你從你的點擊處理程序返回false,啓用JavaScript的瀏覽器將無法瀏覽到鏈接的位置。當Javascript被禁用時,鏈接將按照正常進行。

+0

你擊中了頭部的指甲。 – ALH 2012-02-08 16:39:05

8

默認爲非Javascript狀態,然後使用Javascript取消以下鏈接。那麼沒有使用Javascript的用戶將會關注這個鏈接,而那些啓用它的用戶則不會。

+0

哇!我沒有這樣想過。 TNX。 – ALH 2012-02-08 16:25:07

+0

這是做到這一點的唯一方法。 'href'屬性不應該包含'javascript:void();'或空白散列(例如'href =「#」')。這是不好的做法。 – MMM 2012-02-08 16:29:55

+0

@MMM你能告訴我爲什麼? – ALH 2012-02-08 16:40:05

1

也許就可以正常使用PHP鏈接href="./edit.php?id=12&text=some_text_here",建立自己的網頁,當你的文檔加載執行JavaScript函數將使用jQuery的功能javascript:void(0);

例更換<a>標籤的href屬性:

$('a.button').attr('href', 'javascript:void(0);'); 

如果用戶沒有Javascript,那麼href屬性將不會更新。

+0

他們會希望通過用戶操作執行某些操作,而不是覆蓋「href」屬性,只需附加「click」偵聽器並返回false就更有意義。 – Pickle 2012-02-08 16:27:38

+0

其實它應該是一個#按鈕不是a.button,但無論如何感謝。 +1 – ALH 2012-02-08 16:38:02

1

您可能需要使用"progressive enhancement"。這基本上意味着,您可以像編寫JavaScript一樣編寫HTML,然後使用JavaScript來增強功能。

這通常通過附加事件,在頁面加載時調用的函數內修改DOM等來實現。

+0

偉大的提示tnx +1 – ALH 2012-02-08 16:28:39

相關問題