根据URL隐藏div

时间:2011-09-02 15:59:13

标签: javascript jquery url html

每当有人访问特定网址时,我都会尝试隐藏div。

这样的事情:

var url = document.location.href;

if (url.indexOf('http://donorperfect.local/asp/loginfull.asp') >= 0) {
    $('#hidebox').hide();
} else {
    $('#hidebox').show();
}

write("<div id=\"hidebox\">\n");
write("<p>test</p>\n");
write("</div>\n");

4 个答案:

答案 0 :(得分:2)

在加载页面后运行代码,并且要隐藏的元素可用于jQuery。同时将url转换为小写,并比较混合情况下的用户类型。

$(function(){
     var url = document.location.href;

     if (url.toLowerCase().indexOf('http://donorperfect.local/asp/loginfull.asp') >= 0) {
       $('#hidebox').hide();
     } else {
        $('#hidebox').show();
     }
});

答案 1 :(得分:2)

修改

关闭您提供的链接作为示例,这里有几个问题。

  1. 您的SCRIPT标记应位于HEAD
  2. $()不可用时,你正在使用它(Firebug会对此提出明确错误)
  3. 文件名与indexOf()匹配
  4. 不符

    修复这些问题,它运行正常。参见:

    <head>
    ...
    <script language='JavaScript' src='/js/jquery-1.4.1.js' type="text/javascript"></script>
    ...
    <script type="text/javascript">
    $(function(){
        var url = window.location.href; 
    
        if (url.indexOf('donorperfect.html') > -1) { 
            $('#hidebox').show();
        } else { 
            $('#hidebox').hide();  
        } 
    });
    </script>
    ...
    </head>
    

    http://jfcoder.com/test/donorperfect.html

    以下代码有效(setTimeout用于演示目的):

    document.write("<div id=\"hidebox\">\n");
    document.write("<p>test</p>\n");
    document.write("</div>\n");
    
    $(document).ready(function(){
        var url = 'http://donorperfect.local/asp/loginfull.asp';
    
        if (url.indexOf('http://donorperfect.local/asp/loginfull.asp') > -1) {
            setTimeout(function(){$('#hidebox').hide()},2000);
        } else {
            $('#hidebox').show();
        }
    });
    

    http://jsfiddle.net/userdude/Qt8uH/

    虽然这可能是我推荐的(例如,如果它是HTTPS会发生什么?):

    document.write("<div id=\"hidebox\">\n");
    document.write("<p>test</p>\n");
    document.write("</div>\n");
    
    $(document).ready(function(){
        var url = 'http://donorperfect.local/asp/loginfull.asp';
    
        if (url.toLowerCase().indexOf('loginfull.asp') > -1) {
            setTimeout(function(){$('#hidebox').hide()},2000);
        } else {
            $('#hidebox').show();
        }
    });
    

    http://jsfiddle.net/userdude/Qt8uH/1/

答案 2 :(得分:0)

您可以尝试将document.location.href更改为window.location.pathname;

所以你的代码现在说

var url = window.location.pathname; 

    if (url.indexOf('http://donorperfect.local/asp/loginfull.asp') >= 0) { 
     $('#hidebox').hide(); 
     } else { 
     $('#hidebox').show(); 
     } 

答案 3 :(得分:0)

这会对你有所帮助!!!试试这个。它从地址栏中获取URL。

var url = window.location.href;
if(url == "http://www.promilitarybusinessnetwork.com/continueSearch.asp?categoryID=108") {
    $('#website').html('<p>This is the Apartments Category page</p>');
} else {
    $('#website').hide();
}});

如果不是.hide();。试试.empty();