<form name=f>
<input type=button value="禁止" onclick="a()">
<input type=button value="恢复" onclick="a2()">
</form>
<script>
function a()
{
for(i=0;i<document.getElementsByTagName("A").length;i++)
{
document.getElementsByTagName("A")[i].mxh=document.getElementsByTagName("A")[i].href
document.getElementsByTagName("A")[i].href="Javascript:void(0)"
document.getElementsByTagName("A")[i].onclick=""
}
}
function a2()
{
for(i=0;i<document.getElementsByTagName("A").length;i++)
document.getElementsByTagName("A")[i].href=document.getElementsByTagName("A")[i].mxh
}
</script>
<a href="http://sina.com.cn" mxh="" onclick="alert()">AAA</a>
<a href="http://sina.com.cn" mxh="">AAA</a>

解决方案 »

  1.   

    <form name=f>
    <input type=button value="禁止" onclick="a()">
    <input type=button value="恢复" onclick="a2()">
    </form>
    <script>
    function a()
    {
    for(i=0;i<document.getElementsByTagName("A").length;i++)
    {
    document.getElementsByTagName("A")[i].mxh=document.getElementsByTagName("A")[i].href
    document.getElementsByTagName("A")[i].href="Javascript:void(0)"
    document.getElementsByTagName("A")[i].mxh2=document.getElementsByTagName("A")[i].onclick
    document.getElementsByTagName("A")[i].onclick=""
    }
    }
    function a2()
    {
    for(i=0;i<document.getElementsByTagName("A").length;i++){
    document.getElementsByTagName("A")[i].href=document.getElementsByTagName("A")[i].mxh
    document.getElementsByTagName("A")[i].onclick=document.getElementsByTagName("A")[i].mxh2
    }
    }
    </script>
    <a href="http://sina.com.cn" mxh="" mxh2="" onclick="alert()">AAA</a>
    <a href="http://sina.com.cn" mxh="" mxh2="">AAA</a>
      

  2.   

    晕!
    楼主何必跟自己过意不去,自己不写a 的 onclick事件,统统放在href中不就行了。
      

  3.   

    我本来以为我那个可以的呢,也奇怪啊<a href="javascript:alert(1)" onclick="alert(2)" disabled>test</a>怎么disabled光改了显示效果,既不禁href又不禁onclick,要来干嘛啊?
      

  4.   

    你禁止得了人家用右键点击>打开吗?这样岂不是还要禁止右键菜单?
    建议你干脆把所有的连接隐藏起来更好。
    <form name=f>
    <input type=button value="禁止" onclick="flag=false; ff()">
    <input type=button value="恢复" onclick="flag=true; ff()">
    </form>
    <script>
    var flag=true;
    window.onload=ff;
    function ff(){
    var o=document.links
    for(i=0;i<o.length;i++)
     //o[i].onclick=new Function("return flag")
      o[i].style.visibility = flag? "" : "hidden"
    }
    </script>
    <a href="#1" mxh="">AAA</a>
    <a href="#2" mxh="">AAA</a>
    <<p>&nbsp;
    <p>&nbsp;
    <p>&nbsp;
    <p>&nbsp;
    <p>&nbsp;
    <p>&nbsp;
    <p>&nbsp;
    <p>&nbsp;
    <p>&nbsp;
    <a name="1">test</a>
    <a name="2">test</a>
      

  5.   

    呵呵,我有时用span来冒充超链接,全部在onclick里面做,用htc来实现高亮,既不怕右键又不怕shift-click。
      

  6.   

    以为秋水会再来一个的,等了半天不来。
    为了贯彻落实秋水风格,照猫画虎的弄了一个:
    <form name=f>
    <input type=button value="禁止" onclick="flag=false">
    <input type=button value="恢复" onclick="flag=true">
    </form>
    <script>
    var flag=true;
    function window.onload(){
    var o=document.links;
    for(i=0;i<o.length;i++){o[i].emu=o[i].onclick;o[i].onclick=new Function("if (flag) this.emu();return flag")}
    }
    </script>
    <a href="http://www.csdn.net" onclick="alert(1)">AAA</a>
    <a href="http://www.csdn.net" onclick="alert(2)">AAA</a>呵呵,象吧?
      

  7.   

    刚测试完并完成相关的工作,以下是相关的代码,参考了各位的想法:function setPageLinkNoUse(){
        var fo = document.all.tags("A");
        for(i=0;i<fo.length;i++){
            if(fo[i].mxh == "inner"){
      fo[i].href="#";
      fo[i].disabled=true;
      fo[i].onclick="";
            }
        }  
    }其中,href="#"和onclick=""绝对不能少的,刚试过的,还有一个就是,document.all.tags("A");好像不能用在一个form里面,刚才我用document.setForm.tags("A");就是不行的,有form名的形式对其他的tags就有用,但是这个A就是软硬不吃!所以我就用document.all.tags("A");,然后在setForm里面的所有标有<a...>加上了一个<a... mxh="inner"...>,最后就有上面的方法搞定了!
      

  8.   

    这个是用span来冒充的。不过没有处理target。因为要考虑全部情况代码就多了,不如在具体使用的时候根据情况再写。<form name=f>
    <input type=button value="禁止" onclick="flag=false">
    <input type=button value="恢复" onclick="flag=true">
    </form>
    <script>
    var flag=true;
    function window.onload(){
    var o=document.getElementsByTagName("A");
    for(i=o.length-1;i>-1;i--)
    {
    var s = document.createElement("<span></span>")
    s.innerHTML = o[i].innerText;
    s.emu=o[i].onclick;
    s.href=o[i].href;
    s.onclick=new Function("if (flag) try{this.emu()} finally{location=this.href}")
    s.onmouseover=new Function("this.style.color='red'")
    s.onmouseout=new Function("this.style.color='blue'")
    s.style.color="blue"
    s.style.cursor="hand"
    o[i].replaceNode(s)
    }
    }
    </script>
    <a href="http://www.csdn.net" onclick="alert(1)">AAA</a>
    <a href="http://www.csdn.net" onclick="alert(2)">AAA</a>
      

  9.   

    还有没有其他意见,没有的话,再过一会结帖!对了, onestab(┼─) ,你也太搞笑了,刚才用你的方法测试,把我所有连接hidden掉了,等一下我给你多一点分来给你消消气:)
      

  10.   

    超链接不属于表单的元素,你用document.setForm.tags("A");自然不行。直接从document引用就行了嘛。另外document.all.tags("A")不安全,只有一个元素的时候会返回元素本身,反而要多做些判断,这就是我们都用document.getElementsByTagName("A")或者document.links的原因了。
      

  11.   

    thank you, emu(ston)!thanks for all!