在页面加载时显示div

时间:2013-01-26 17:18:45

标签: javascript html

我在一个html页面的查询字符串中传递div名称,并在另一个html页面上检索该div名称。现在我想在页面上显示特定的div。我的代码是

function onLoad()
{    
    var divname=window.location.search.substring(1);    
    document.getElementById(divname).style.display="block";    //error is in this line
}

但我收到的错误是“预期的对象”。请帮帮我

3 个答案:

答案 0 :(得分:3)

window.location.search属性返回?符号后面的网址部分,包括?符号。

例如,它可能会返回?paramname=paramvalue。当你在它上面调用substring(1)时,你会得到paramname=paramvalue,这是传递给document.getElementById函数的,这显然是错误的,因为你的DOM上不存在这样的元素。

您可以使用following javascript function来读取查询字符串参数值:

function onLoad() {    
    var divname = getParameterByName('divname');    
    document.getElementById(divname).style.display = 'block';
}

这假设您有一个名为divname的查询字符串参数名称:

?divname=some_div_name

如果以不同方式调用查询字符串参数,请调整传递给getParameterByName函数的参数。

您可能还希望在代码中引入错误检查,以使其更加健壮:

function onLoad() {    
    var divname = getParameterByName('divname');    
    var divElement = document.getElementById(divname);
    if (divElement != null) {
        divElement.style.display = 'block';
    } else {
        alert('Unable to find an element with name = ' + divname);
    }
}

答案 1 :(得分:0)

我的建议是将js放在html代码的末尾(</body>代码之前)。不要使用功能。

<html>
    ...
    ...
    ...
    <body>
    ...
    ...
    ...
        <script>
            var divname=window.location.search.substring(1);    
            document.getElementById(divname).style.display="block"; 
        </script>
    </body>
</html>  

答案 2 :(得分:0)

我重写了我的功能,它正在运行,代码就像这样

function load()  
{  
    var divname = window.location.search.substring(1);  
    var params=divname.split('=');  
    var i=1;  
    alert(params[i].substring(0));  
    document.getElementById(params[i].substring(0)).style.display='block';  
}
相关问题