http://qs321.pair.com?node_id=626456

bauer1sc has asked for the wisdom of the Perl Monks concerning the following question:

I've been working on this app that strips data from a web page. I have come to the point where everything is working but when trying to navigate to next page I am failing. The sites navigation is in Javascript and Im not sure how to handle javascript. Here is the code from the source on their page. let me know what you think.
<form name="frmRegisteredProjectList" method="post" action="Re +gisteredProjectList.aspx?CMSPageID=243&amp;CategoryID=19&amp;" id="fr +mRegisteredProjectList"> <input type="hidden" name="__EVENTTARGET" value="" /> <input type="hidden" name="__EVENTARGUMENT" value="" /> <input type="hidden" name="__VIEWSTATE" value="biglong garbage that wo +uld make post 5 pages long.=" /> <script language="javascript" type="text/javascript"> <!-- function __doPostBack(eventTarget, eventArgument) { var theform; if (window.navigator.appName.toLowerCase().indexOf("microsoft" +) > -1) { theform = document.frmRegisteredProjectList; } else { theform = document.forms["frmRegisteredProjectList"]; } theform.__EVENTTARGET.value = eventTarget.split("$").join(":") +; theform.__EVENTARGUMENT.value = eventArgument; theform.submit(); } // --> </script>
The link to the page is at http://www.usgbc.org/LEED/Project/RegisteredProjectList.aspx?CMSPageID=243&CategoryID=19& Thanks in advance!

Replies are listed 'Best First'.
Re: Help with javascript navigation
by Corion (Patriarch) on Jul 13, 2007 at 14:50 UTC

    I usually just inspect what requests go over the wire with a web browser, for example the Live HTTP Headers plugin for Mozilla. After looking at what requests get sent, I replicate them from my Perl code. This technique makes it really easy if the on-page JavaScript is too ugly to decipher.

      I will give that a shot! Thanks!
      Corion After looking at the live headers, the only thing that is changign from page to page it this
      __EVENTTARGET=dgRegProjList%3A_ctl29%3A_ctl2&__EVENTARGUMENT=&__VIEWST +ATE=dDwtMjc0MDE3Mjc7dDxwPGw8TEVFRElkO1Byb2plY3ROYW1lO1Byb2plY3RPd25lc +jtQYWdlSW5kZXg7Q2l0eTtTb3J0UHJvcGVydHk7U3RhdGU7U29ydERpcmVjdGlvbjtDb3 +VudHJ5Oz47bDw7XGU7XGU7aTwxPjtcZTs7XGU7O1xlOz4%2BO2w8aTwxPjs%2BO2w8dDw +7bDxpPDE%2BO2k8Nz47aTw5PjtpPDIxPjtpPDIzPjs%2BO2w8dDxwPHA8bDxCcmVhZENy +dW1iQ2F0ZWdvcnlJRDs%2BO2w8aTwxMTU%2BOz4%2BOz47bDxpPDE%2BO2k8Mz47aTw1P +jtpPDE1PjtpPDE3Pjs%2BO2w8dDxwPHA8bDxUZXh0Oz47bDxcZTs%2BPjs%2BOzs%2BO3 +Q8cDxwPGw8VGV4dDtOYXZpZ2F0ZVVybDs%2BO2w8U2lnbiBJbjsvTG9naW4uYXNweD9SR +UZFUlJFUj0vTEVFRC9Qcm9qZWN0L1JlZ2lzdGVyZWRQcm9qZWN0TGlzdC5hc3B4P0NNU1 +BhZ2VJRD0yNDMmQ2F0ZWdvcnlJRD0xOSY7Pj47Pjs7Pjt0PDtsPGk8MT47aTwzPjs%2BO +2w8dDw7bDxpPDE%2BO2k8Mz47PjtsPHQ8cDxsPGNsYXNzOz47bDxMRUVEOz4%2BO2w8aT +wwPjs%2BO2w8dDxwPHA8bDxUZXh0Oz47bDxMRUVEOz4%2BOz47Oz47Pj47dDxwPGw8XyF +JdGVtQ291bnQ7PjtsPGk8MTA%2BOz4%2BO2w8aTwwPjtpPDE%2BO2k8Mj47aTwzPjtpPD +Q%2BO2k8NT47aTw2PjtpPDc%2BO2k8OD47aTw5Pjs%2BO2w8dDw7bDxpPDE%2BO2k8Mz4 +7PjtsPHQ8cDxsPFZpc2libGU7PjtsPG88Zj47Pj47bDxpPDE%2BO2k8Mz47PjtsPHQ8cD +xwPGw8TmF2aWdhdGVVcmw7PjtsPGh0dHA6Ly93d3cudXNnYmMub3JnL0Rpc3BsYXlQYWd +lLmFzcHg%2FQ01TUGFnZUlEPTIyMiY7Pj47PjtsPGk8MD47PjtsPHQ8QDxMRUVEIFJhdG +luZyBTeXN0ZW1zOz47Oz47Pj47dDxwPGw8XyFJdGVtQ291bnQ7VmlzaWJsZTs%2BO2w8a +TwtMT47bzxmPjs%2BPjs7Pjs%2BPjt0PDtsPGk8MT47PjtsPHQ8cDxwPGw8TmF2aWdhdG +VVcmw7PjtsPGh0dHA6Ly93d3cudXNnYmMub3JnL0Rpc3BsYXlQYWdlLmFzcHg% .... C +ONTINUES ON FOR A MILE
      The only thing changing in that garbage is the __EVENTTARGET=dgRegProjList%3A_ctl29% I havent got the slightest idea on how to replicate this. Please throw any and all suggestions at me. Thanks again monks!