Получение неопределенной ошибки при использовании Request.QueryString () для получения переменного значения - PullRequest
2 голосов
/ 20 августа 2010

Я использую следующий код, чтобы открыть всплывающее окно и передать идентификатор в виде строки запроса.

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script language="javascript" type="text/javascript">
function openwindow(divID) {
           window.open("pp.html?id="+divID+"","","status=yes, location=yes, width=700, height=400");
   }
</script>
</head>
<body>
<a href="#" onclick="openwindow('one')" id="one">One</a>
<br />
<a href="#" onclick="openwindow('two')" id="two">Two</a>
<br />
<a href="#" onclick="openwindow('three')" id="three">Three</a>
</body>
</html>

Сценарий, мне нужно показать DIV во всплывающем окне, чей идентификатор похож на значение строки запроса. Код всплывающего окна

<html>
<head>
<script language="javascript" type="text/javascript">
function getid() {
    if (Request.QueryString("id")!=null)
        var id = Request.QueryString("id");
        document.getElementById(id).style.display = "block";
}
</script>
</head>
<body onload="getid();">
<div style=" overflow:hidden">
<div style="margin-left:-5px;"><input type="file" style="" /></div>
</div>
<div style="width:200px; height:200px; border:1px solid #999999; background-  color:#CCCCCC; display:none" id="one">Hello! ONE</div>
<div style="width:200px; height:200px; border:1px solid #999999; background-color:#CCCCCC; display:none" id="two">Hello! TWO</div>
<div style="width:200px; height:200px; border:1px solid #999999; background-color:#CCCCCC; display:none" id="three">Hello! THREE</div>
</body>
</html>

Теперь всплывающее окно выдает ошибку «Запрос не определен».

Пожалуйста, помогите мне с решением.

Спасибо Локеш Ядав

1 Ответ

1 голос
/ 20 августа 2010

Вы смешиваете язык сервера ASP.NET с javascript, что, конечно, невозможно. Попробуйте вот так:

function getid() {
    <% if (Request.QueryString("id") != null) { %>
        var id = '<%= Request.QueryString("id") %>';
        document.getElementById(id).style.display = 'block';
    <% } %>
}

Если вы не используете серверный язык, вы можете использовать следующую функцию для чтения параметров строки запроса в javascript ( взято отсюда ):

function gup(name)
{
    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
    var regexS = "[\\?&]"+name+"=([^&#]*)";
    var regex = new RegExp( regexS );
    var results = regex.exec( window.location.href );
    if( results == null ) {
        return "";
    } else {
        return results[1];
    }
}

И используйте вот так:

function getid() {
    var id = gup('id');
    if (id != '') {
        document.getElementById(id).style.display = 'block';
    }
}
...