2009-04-03 11 views
0

Il y a une page Web à l'adresse suivante:Ouverture de la page Web comme si un lien a été cliqué de la page Web

http://www.vankampen.com/Products/529Portfolios

Cette page ouvre avec l'option par défaut « Avec frais de vente ». Il y a un lien "sans frais de vente" sur cette page Web. Lorsque nous cliquons sur ce lien, la page Web affiche les options liées à «Sans frais de vente».

Je veux ouvrir l'URL "http://www.vankampen.com/Products/529Portfolios" avec l'option "Sans frais de vente" au lieu de l'option "Avec frais de vente" par défaut.

de la souris "sans frais de vente", il montre la fonction suivante appelée: javascript: __ doPostBack ('ctl00 $ ctl00 $ ctl00 $ m_mainContent $ m_secondaryContent $ m_mainContent $ list529Funds $ ctrl1 $ withoutSalesCharge', '')

Quelqu'un peut-il me suggérer s'il est possible d'ouvrir la page Web avec l'option «Sans frais de vente» au lieu de l'option «Avec frais de vente»?

Merci,

+0

'Il y a un lien "Sans frais de vente" sur cette page Web.' où diable est ce lien? Vous êtes question totalement floue. S'il vous plait, réécrivez pour qu'un être humain simple puisse comprendre moi-même ce que vous essayez de dire. – Natrium

+0

Un "être humain simple" comme moi-même trouve 7 occurrences. Vous pouvez envisager d'utiliser la fonctionnalité "Rechercher" du navigateur – devio

Répondre

0

Je suppose que vous ne contrôlez pas www.vankampen.com mais que vous voulez « lien profond » à une page avec les bons paramètres appliqués? Si la seule façon de parvenir à cette mise en page est la soumission de formulaire, vous devez essayer de publier des messages sur le serveur. Toutefois, ASP.NET refusera généralement une publication à partir d'un site différent. viewstates etc échouera la validation.

Si vous avez accès au code de www.vankampen.com, alors vous pourriez envisager de fournir un mécanisme pour fournir des liens directs vers ces pages, ou tout un get plutôt qu'un post.

+0

Je n'ai pas le code source de www.vankampen.com – user85594

+0

Ensuite, je ne pense pas que vous puissiez y remédier - ASP.NET est conçu pour rejeter les publications de différents domaines. –

0

Rendre "avec frais de vente" et "sans frais de vente" accessibles via la chaîne de requête.

Alors u peut simplement faire quelque chose comme

Avec des ventes Charge

http://www.vankampen.com/Products/529Portfolios?settings=CS

ou

Sans frais de souscription

http://www.vankampen.com/Products/529Portfolios?settings=NCS

+0

Je n'ai pas le code source de www.vankampen.com, je l'utilise juste dans mon programme pour obtenir les données affichées par cette page. C'est pourquoi j'ai demandé s'il y avait un moyen d'ouvrir la page souhaitée à la première tentative sans publication. – user85594

1

Je dirais que d dépend de ce que vous essayez de faire exactement.

Je crains que vous ne puissiez pas éviter un post-retour, à moins qu'ils ne supportent une variable de chaîne de requête ou n'aient un moyen de définir une "préférence" dans un cookie ou autre. Que tu devrais comprendre par toi-même.

Sinon, il s'agit d'une technique de capture/relecture standard. Vous devrez imiter les actions de l'utilisateur sous une forme et une mode. Ce qui signifie envoyer une requête GET initiale pour extraire tout le champ de formulaire, puis créer un POST pour simuler la publication.

Faire cela dans un navigateur normal serait difficile, je suppose. Je ne me souviens pas si javascript permet de définir les en-têtes et tout. Je suppose que vous pouvez utiliser des objets actifs MS ... Cependant, si votre objectif est d'extraire des données dans un code .net, vous pouvez le faire relativement facilement.

Il existe de nombreux exemples d'utilisation de HttpWebRequest ou WebClient pour la capture d'écran, y compris la simulation de connexions et autres. J'utiliserais HttpWebRequest. Envoyer une requête GET, obtenir des données, conserver les cookies, extraire les champs de formulaire, créer une requête POST, recréer les en-têtes (y compris le référent approprié), créer un corps de message approprié, réaffecter les cookies et vous devez définir.

Pour voir ce qui doit être envoyé, je suggère d'utiliser un Fiddler (avec IE). Lancez-le, puis naviguez jusqu'à la page, cliquez sur un lien. Le Filder vous montrera tout le trafic et toutes les informations nécessaires sur la demande initiale et la publication postérieure.

Questions connexes