By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
459,568 Members | 1,713 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 459,568 IT Pros & Developers. It's quick & easy.

Firefox history.go(-1) not working as needed

P: n/a
Hi,

My web page has an iframe with a list of items from a database. These
items are html links and when clicked they execute a server side
script to update the database and reload the iframe with the updated
links. The list is sometimes long and I would like the user to return
to the same iframe anchor point as they were before. I use the
following code in the database update script (which also reloads the
iframe) which works fine with Internet Explorer but returns the user
to the top of the iframe with Firefox.

window.history.go(-1);

Any ideas/suggestions on how to get the desired behavior in both IE
and Firefox?

Thanks,
Raffi

Jun 23 '07 #1
Share this Question
Share on Google+
6 Replies


P: n/a
ASM
Raffi a écrit :
>
Any ideas/suggestions on how to get the desired behavior in both IE
and Firefox?
location.href=self.location; ?

or links in normal html ?

<p><a href="?feature=001#f001" name="f001">feature 001</a>
<p><a href="?feature=002#f002" name="f002">feature 002</a>
<p><a href="?feature=003#f003" name="f003">feature 003</a>

--
Stephane Moriaux et son (moins) vieux Mac
Stephane Moriaux and his (less) old Mac already out of date
Jun 23 '07 #2

P: n/a
On Jun 23, 2:40 pm, ASM <stephanemoriaux.NoAd...@wanadoo.fr.invalid>
wrote:
Raffia écrit :
Any ideas/suggestions on how to get the desired behavior in both IE
and Firefox?

location.href=self.location; ?

or links in normal html ?

<p><a href="?feature=001#f001" name="f001">feature 001</a>
<p><a href="?feature=002#f002" name="f002">feature 002</a>
<p><a href="?feature=003#f003" name="f003">feature 003</a>

--
Stephane Moriaux et son (moins) vieux Mac
Stephane Moriaux and his (less) old Mac already out of date
I tried location.href=self.location; and it resulted in an endless
loop. The anchored link will not work since it's not the linkthat
reloads the iframe but the script that is executed when the user
clicks the link. Here are more details. The main page has an iframe
which has a number of links like the following:

<a href="javascript:window.location.href = './script.xxx?
varable=choice1>Choice1</A>

script.xxx then updates the database using the variable and reloads
the iframe content. Currently

parent.history.go(-1);

works fine for IE but not for Firefox.

Any help will be appreciated.

Thanks,
Raffi

Jun 23 '07 #3

P: n/a
ASM
Raffi a écrit :
>
I tried location.href=self.location; and it resulted in an endless
loop.
Not very surprised :-)
The anchored link will not work since it's not the link that
reloads the iframe but the script that is executed when the user
clicks the link. Here are more details. The main page has an iframe
which has a number of links like the following:

<a href="javascript:window.location.href = './script.xxx?
varable=choice1>Choice1</A>
I do not understand where is the script (JS script) ?

Youre 'JS' script 'window.location' is exactly same as :

<a href="./script.xxx?varable=choice1">Choice1</A>

What is what I proposed,
except I've introduced anchors in links AND in calls

<a href="./script.xxx?variable=choice1#choice1" name="choice1" >Choice1</A>
If you want absolutely to use JS :

<a href="./script.xxx" name="choice1"
onclick="this.href+='?variable='+this.name+'#'+thi s.name;">Choice1</A>

or :

<script type="text/javasccript">
window.onload = function() {
var L = document.links;
for(var i=0; i<L.length; i++)
if(L[i].href.indexOf('script')>0)
L[i].href += '?variable='+L[i].name+'#'+L[i].name;
}
</script>

<a href="./script.xxx" name="choice1">Choice 1</A>
<a href="./script.xxx" name="choice2">Choice 2</A>
<a href="./script.xxx" name="choice3">Choice 3</A>

--
Stephane Moriaux et son (moins) vieux Mac
Stephane Moriaux and his (less) old Mac already out of date
Jun 24 '07 #4

P: n/a
On Jun 24, 6:16 am, ASM <stephanemoriaux.NoAd...@wanadoo.fr.invalid>
wrote:
Raffia écrit :
I tried location.href=self.location; and it resulted in an endless
loop.

Not very surprised :-)
The anchored link will not work since it's not the link that
reloads the iframe but the script that is executed when the user
clicks the link. Here are more details. The main page has an iframe
which has a number of links like the following:
<a href="javascript:window.location.href = './script.xxx?
varable=choice1>Choice1</A>

I do not understand where is the script (JS script) ?

Youre 'JS' script 'window.location' is exactly same as :

<a href="./script.xxx?varable=choice1">Choice1</A>

What is what I proposed,
except I've introduced anchors in links AND in calls

<a href="./script.xxx?variable=choice1#choice1" name="choice1" >Choice1</A>

If you want absolutely to use JS :

<a href="./script.xxx" name="choice1"
onclick="this.href+='?variable='+this.name+'#'+thi s.name;">Choice1</A>

or :

<script type="text/javasccript">
window.onload = function() {
var L = document.links;
for(var i=0; i<L.length; i++)
if(L[i].href.indexOf('script')>0)
L[i].href += '?variable='+L[i].name+'#'+L[i].name;
}
</script>

<a href="./script.xxx" name="choice1">Choice 1</A>
<a href="./script.xxx" name="choice2">Choice 2</A>
<a href="./script.xxx" name="choice3">Choice 3</A>

--
Stephane Moriaux et son (moins) vieux Mac
Stephane Moriaux and his (less) old Mac already out of date
Hello Stephane,

Thanks for your response and suggestions. It helped me clean up my
html code a little.

Your suggestions for the anchor did not work however. I think the
reason is the anchor information in the html link is passed along to
script.xxx. Once this script runs the "window.history.go(-1);" at the
end of the script does the reloading of the iframe. I think I need
something in script.xxx to make the iframe scroll to the anchor after
reloading.

Thanks,
Raffi

Jun 24 '07 #5

P: n/a
ASM
Raffi a écrit :
>
Your suggestions for the anchor did not work however. I think the
reason is the anchor information in the html link is passed along to
script.xxx.
Isn't script.xxx a file (a php file whom script does something) ?
Once this script runs the "window.history.go(-1);" at the
end of the script
Why do you keep this JS in your file 'script.xxx' ?
You don't need it with the attached anchor (#choicexx)

I do not understand why you have to go back ...
'script.xxx' can't content what that is to display ?

The clicked link calls the file 'script.xxx'
with attached to its url :
- the variable and ist value : ?variable=choicexx
and
- the anchor to reach on (re)loading : #choicexx

It is simple and normal html feature
I think I need
something in script.xxx to make the iframe scroll to the anchor after
reloading.
on reloading you only need to reach the mentioned anchor

Try this example
- where the file calls itself instead to call another file
(isn't it this file which is the src of iframe ?)
- where there is a (JS) script about the attached variable

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Untitled</title>
<style type="text/css" title="text/css">
div p { height: 150px; border: 1px solid; margin-top: 50px; }
</style>
<script type="text/javascript">
onload = function() {
alert(window.location.search);
}
</script>
</head>
<body>
<div>
<p><a href="?feature=256#f256" name="f256">feature 256</a>
<p><a href="?feature=001#f001" name="f001">feature 001</a>
<p><a href="?feature=002#f002" name="f002">feature 002</a>
<p><a href="?feature=003#f003" name="f003">feature 003</a>
<p><a href="?feature=004#f004" name="f004">feature 004</a>
<p><a href="?feature=005#f005" name="f005">feature 005</a>
<p><a href="?feature=006#f006" name="f006">feature 006</a>
<p><a href="?feature=007#f007" name="f007">feature 007</a>
</div>
</body>
</html>

--
Stephane Moriaux et son (moins) vieux Mac
Stephane Moriaux and his (less) old Mac already out of date
Jun 25 '07 #6

P: n/a
Raffi wrote:
Hi,

My web page has an iframe with a list of items from a database. These
items are html links and when clicked they execute a server side
script to update the database and reload the iframe...

window.history.go(-1);

Any ideas/suggestions on how to get the desired behavior in both IE
and Firefox?
The history refers to web pages loaded within the browser. The loading
of an iframe from the server to an area within the web page does not
change the web page that was loaded, therefore the history does not
record the change of the update. This is as it ought to be and, if it
does not work that way in MSIE then I am afraid that IE is wrong and
Firefox is right. You are dealing with it on your server and it is
your server that should permit the reloading of the previous iframe
contents, not the browser page code in Javascript.
Jun 25 '07 #7

This discussion thread is closed

Replies have been disabled for this discussion.