[thelist] dynamic back button (javascript)
Brian Cummiskey
Brian at hondaswap.com
Wed Feb 9 16:31:53 CST 2005
Hi folks- me again with another JS question.
I'm working on a huge campaign for an internal intranet application (all
win2k/ie6 workstations). This is coded in classic vb/asp on the back
and js for the client side.
the web-based application is launched in a 3rd party scripter
(basically, and IE-like environment, but no menus, back button, etc --
similar to full screen mode (F11). the Backspace, Escape, and enter
keys are also disabled, as are right mouse clicks for navigation
purposes [backspace and enter will still work when active on a form
element].)
I'm trying to set it up so that the "back button" - a button I
physically put into the script - is dynamic.
1st logical answer was to use the history(-1) function. This is exaclty
what i want- BUT the problem lies in that IF the agent entered anything
into the form on the page, and then goes back, the data entered is lost.
I need to set a cookie for it so that it will be filled in when the
agent returns to the page once again (and doesn't look stupid asking the
customer for the same information twice because the system lost it). My
pages are all set up to handel both forward and backwards movement for
setting the cookies.
My next idea was to place a hidden var on every page, using the
HTTP_REFERRER as the value for the back button's action. (see code
below- i used the same setup) This works great too-- until you want to
go back more than 1 page. This just puts you in an endless
back-and-forth loop between the current page and the one just before it
back to the orig page, and so on.
So, I came up with the idea to combine the two: (with all the other code
stripped out):
<html>
<head>
<script type="text/javascript">
function goBack() {
var theform = document.getElementById("frmdefault");
var previouspage = history(-1);
theform.method="post";
theform.action = previouspage;
theform.submit();
}
</script>
</head>
<body>
<form name="frmdefault" id="frmdefault">
<input type="button" value="Back" onclick="goBack();" />
// other form stuff here....
</form>
</body>
</html>
Well, this fails miserably. :D I expected it to not work. But, I
can't seem to think of the way to DO that, but have it work.
firefox's JS tool (which is what i use to test/develop with) says
"history is not a function" is the error.
hrmmm...
It's IMPOSSIBLE - not just time consuimg - to physically hard code in
every script's previous page (probably 50+ pages by now and growing)).
Some pages have more than 1 lead into them, so it would be a guess at
best to send them back to one or the other. In fact, that puts me right
back on the HTTP_REFERER solution i tried above.
Sessions are NOT an option. This setup is used on most of our app's
without a hitch. However, this is the first time i've ever had
multiple->single page paths.
lol its a big circle. anyone have a "square" way out of it? :P
Thanks,
-Brian
More information about the thelist
mailing list