簡體   English   中英

如何禁用網頁上的所有href? 可以用JavaScript完成嗎?

[英]How to disable all href on a web page? Can it be done with javascript?

我正在使用一個系統,該系統將強制成員首先填寫其詳細信息,然后只能查看該網站的其他頁面。 但我不知道如何禁用所有href鏈接,用戶只能按“提交”按鈕才能繼續。 我找不到如何一次全部禁用的方法,我只發現按ID逐個禁用href 1,條件是他們需要單擊一個提交按鈕。 但是我想要的是,當用戶在特定頁面上並且數據庫status = 1時,它將禁用,而status = 2時,href將被啟用。

這是profile-page-update.html我的提交按鈕:

 <input type="submit" name="submit" onclick="xajax_editprofile(xajax.getFormValues('updateuser')); return false;" style="width:1px; visibility:hidden;">
<a href="#" onclick="xajax_editprofile(xajax.getFormValues('updateuser')); return false;">Save</a></div>

這就是我需要禁用的所有鏈接:

    <div class="nav">
        <ul>
            <li style="margin-left:20px"><a href="index.php">HOME</a></li>
            <li><a href="news-listing.php">NEWS</a></li>
            <li><a>EVENTS</a>
                <ul>
                    <li><a href="event-listing.php?id=1">UPCOMING EVENTS</a></li>
                    <li><a href="event-listing.php?id=2">PAST EVENTS</a></li>
                </ul>
            </li>
            <{if !$login}>
            <li><a class="open-popup-link" href="#test-popup">COMMUNITY</a></li>
            <{else}>
            <li><a href="community-listing.php">COMMUNITY</a></li>
            <{/if}>
            <li><a href="alumni-listing.php">ALUMNI LISTING</a></li>
        </ul>
    </div>

這是我在互聯網上找到的一些代碼:

<input type="button" value="Open Drop Down" onclick="disableLinks()" />

function disableLinks() {

var links = document.getElementsByTagName('a');

for (var i = 0; i < links.length; i++) {

var link = links[i];

link.removeAttribute('href');

}

從技術上講,您可以通過使用不帶jQuery的getElementsByName或jQuery的$("tagName")遍歷所有<a>元素來禁用鏈接。

我想這不是您所需要的。

如果您的意圖是:

  • 要隱藏鏈接以防止用戶除到達表單目標之外的其他任何地方,只需創建一個僅包含表單,其提交按鈕,沒有其他內容(尤其是沒有鏈接)的頁面。

    如果您只是通過JavaScript播放頁面的鏈接,那么任何人都可以查看頁面的源並恢復鏈接,從而繞過表單並導航到特定頁面。

  • 為了防止用戶訪問網站上的其他任何內容(或訪問某些受限制的資源),然后在服務器端使用安全性檢查,如果用戶無權訪問資源,則使用自動重定向。 如果您使用的是框架,則很有可能已經實現了該功能,並已用於區分經過身份驗證的用戶和訪客:已認證的用戶將能夠訪問特定資源,而訪客將被框架重定向到登錄頁。

    如果您只是隱藏頁面上的鏈接,但不對“受保護”頁面上的服務器端進行任何安全檢查,那么以前使用過該網站(或知道這樣做的人)的任何人都將知道要輸入的確切鏈接,再次繞過表格。

使用jQuery這將在頁面加載后禁用所有<a>

$(function(){

   $("a").on("click", function(){return false;});

})

您只需要在下面運行即可再次啟用它們

 $("a").off("click");

演示版

當您要禁用鏈接時,可以使用jQuery來防止click事件的默認事件偵聽器,然后在允許用戶再次導航時取消綁定。

//remove click ability
$("a").click(function(e){e.preventDefault()});
//reset
$("a").unbind('click');

盡管如果您需要一些單擊偵聽器,但要在某些鏈接等上保持活動狀態,這可能需要做一些其他工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM