2010-01-19 8 views
0

J'ai des pages aspx avec vb.net à l'arrière. J'ai besoin d'utiliser javascript pour ouvrir une nouvelle fenêtre sur le chargement de la page. J'envoie également une chaîne de requête (www.mysite.com/default.aspx?dest=register.aspx) à partir de la page précédente. J'ai besoin du javascript pour analyser la chaîne de requête et ouvrir la nouvelle fenêtre seulement si l'URL a une chaîne de requête. s'il vous plaît conseillerjavascript window.open dans aspx

+0

merci beaucoup pour votre aide. Je suis très nouveau à ce sujet, donc je veux savoir si le code irait dans le fichier aspx ou aspx.vb dans page_load. Aussi, si ça va dans aspx, comment puis-je le déclencher sur le chargement de la page – jinre

+0

toujours éditer votre question si vous voulez de l'aide supplémentaire;) –

Répondre

0

Pour l'analyse de l'URL, il est pratique d'utiliser une sorte de bibliothèque javascript, par exemple prototype;)

Le code ressemblerait à quelque chose comme

var str = "http://www.mysite.com/default.aspx?dest=register.aspx"; 
var obj = str.parseQuery(); 

if(obj.dest) window.open(obj.dest); 

Pour utiliser prototype, tout ce que vous devez faire est de télécharger le fichier javascript here et l'inclure dans votre page avec la balise de script;)

Vous pouvez placer le code dans le gestionnaire d'événement onload, mais soyez conscient des restrictions de sécurité notées par stefpet. Si vous voulez juste rediriger vers la page, vous pouvez le faire dans le codebehind. Si vous voulez vraiment la charge, alors vous avez besoin quelque chose comme

ClientScript.RegisterClientScriptBlock(GetType(), "load_redirect", your_js_code , false); 

où vous remplacez your_js_code avec le code réel.

0

Recherchez-vous spécifiquement la chaîne de requête "dest"?

alors ce serait faire:

if(location.href.indexOf('?dest=') >= 0) 
    window.open('myurl', '', ''); 

Voulez-vous utiliser la valeur de la chaîne de requête pour déterminer quelle page pour ouvrir? Dans ce cas, vous pourriez être mieux générer le script avec un code Serverside:

window.open('<%=Request.QueryString("dest")%>', '', ''); 

Vous pouvez le faire en tout javascript aussi bien. Il existe des bibliothèques là-bas qui vont vous aider à querystrings analysez, mais la façon rapide et sale seraient:

if(location.href.indexOf('?dest=') >= 0) { 
    var dest = location.href.substring(location.href.indexOf('?dest=')+6); 
    window.open(dest, '', ''); 
} 

« rapide et sale » étant le terme important ici. Notez que je cherche seulement ?dest, c'est-à-dire que les URLs ont "dest" comme premier querystring. Je ne vérifie pas non plus s'il y a une perluète dans la valeur, donc il faut même que "dest" soit le seulement querystring. Vous pouvez être aussi élaboré que vous voulez pour le rendre plus fiable, mais comme je l'ai dit, a) vous devriez générer ce script avec le code serveur, b) vous devriez utiliser une bibliothèque d'analyseurs existante si vous ne voulez pas y aller.

+0

où va ce code? dans aspx comme fonction javascript ou dans le fichier .aspx.vb sur page_load? – jinre

+0

tous les exemples sont du code javascript, et en tant que tels, ils devraient apparaître dans le bloc '