У меня есть aspx-страницы с vb.net в спину. Мне нужно использовать javascript для открытия нового окна загрузки страницы. Я также отправляю запрос (www.mysite.com/default.aspx?dest=register.aspx) с предыдущей страницы. Мне нужен javascript для синтаксического анализа запроса и открытия нового окна, только если URL-адрес имеет строку запроса. , пожалуйста, советjavascript window.open in aspx
ответ
Для разбора URL-адреса удобно использовать какую-либо библиотеку javascript, например. prototype;)
Код будет выглядеть что-то вроде
var str = "http://www.mysite.com/default.aspx?dest=register.aspx";
var obj = str.parseQuery();
if(obj.dest) window.open(obj.dest);
Чтобы использовать прототип, все, что вам нужно сделать, это загрузить файл JavaScript here и включите его в странице с тэгом;)
Вы можете поместить код в обработчик события onload, но имейте в виду ограничения безопасности, отмеченные stefpet. Если вы хотите просто перенаправить на страницу, вы можете сделать это в кодебе. Если вы действительно хотите от нагрузки, то вам нужно что-то вроде
ClientScript.RegisterClientScriptBlock(GetType(), "load_redirect", your_js_code , false);
где вы заменить your_js_code с фактическим кодом.
Вы ищете запрос "dest" конкретно?
Тогда это будет делать:
if(location.href.indexOf('?dest=') >= 0)
window.open('myurl', '', '');
Вы хотите использовать значение строки запроса, чтобы определить, какую страницу открыть? В этом случае вы могли бы быть лучше генерировать скрипт с некоторым кодом на стороне сервера:
window.open('<%=Request.QueryString("dest")%>', '', '');
Вы могли бы сделать это все-JavaScript, а также. Есть библиотеки, что там помогут вам разобрать querystrings, но быстрый и грязный путь будет:
if(location.href.indexOf('?dest=') >= 0) {
var dest = location.href.substring(location.href.indexOf('?dest=')+6);
window.open(dest, '', '');
}
«Быстрый и грязный» является Оперативным термином здесь. Обратите внимание, что я ищу только ?dest
, т. Е. URL-адрес, который имеет «dest» как , первый querystring. Я также не проверяю, есть ли амперсанд в значении, поэтому он даже требует, чтобы «dest» был только querystring. Вы можете быть настолько сложными, насколько хотите сделать его более надежным, но, как я сказал, а) вы должны сгенерировать этот скрипт с помощью кода сервера, b) вы должны использовать существующую библиотеку парсеров, если вы действительно не хотите идти с.
, куда идет этот код? в aspx как функция javascript или в файле .aspx.vb на page_load? – jinre
все примеры являются javascript-кодом, и поэтому они должны появляться в блоке '
большое спасибо за вашу помощь. Я очень новичок в этом, так что хочу узнать, будет ли код работать в aspx-файле или aspx.vb в page_load. Также, если он идет в aspx, как мне его вызвать при загрузке страницы – jinre
, всегда редактируйте свой вопрос, если вы хотите получить дополнительную помощь;) –