2010-01-19 6 views
0

У меня есть aspx-страницы с vb.net в спину. Мне нужно использовать javascript для открытия нового окна загрузки страницы. Я также отправляю запрос (www.mysite.com/default.aspx?dest=register.aspx) с предыдущей страницы. Мне нужен javascript для синтаксического анализа запроса и открытия нового окна, только если URL-адрес имеет строку запроса. , пожалуйста, советjavascript window.open in aspx

+0

большое спасибо за вашу помощь. Я очень новичок в этом, так что хочу узнать, будет ли код работать в aspx-файле или aspx.vb в page_load. Также, если он идет в aspx, как мне его вызвать при загрузке страницы – jinre

+0

, всегда редактируйте свой вопрос, если вы хотите получить дополнительную помощь;) –

ответ

0

Для разбора 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 с фактическим кодом.

0

Вы ищете запрос "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) вы должны использовать существующую библиотеку парсеров, если вы действительно не хотите идти с.

+0

, куда идет этот код? в aspx как функция javascript или в файле .aspx.vb на page_load? – jinre

+0

все примеры являются javascript-кодом, и поэтому они должны появляться в блоке '