I have a page with dynamic data loaded by some ajax and lots of javascript.
the page contains a list from which the user can choose and each selected value loads new data to the page.
One of these data items is a url provided to an iframe.
I use jQuery BBQ: Back Button & Query Library to simulate the browser-back behavior.
All works well besides the fact that when i click the back button for the first time the iframe goes back to its previous location and then I need to click back again to make the page go back.
Is there a way to disable the iframe's back behavior?
No, this is entirely up to the browser.
Basically you need to prevent the addition of new history entries in the iframe, history.replaceState introduced in HTML5 would work in most cases.
I've found the answer to my problem guess it could be useful for others out there.
The problem was with the way i assigned new URLs to my Iframe, i used Jquery so it looked something like that:
When assigning the URL in that manner it adds a new entry to the browser's list of visited URLs to go back to.
That wasn't the desired behavior, so after some googling i found that you can assign a new URL to an Iframe object without adding it to the 'back-list', it looks like that:
This way my back button behave exactly as expected.
btw, i got my answer from here.
Hope this was helpful to you as it was to me.
I suggest you create a hyperlink within your iframe. call it 'Back' and put a href as javascript:history.back(-1)That's the best you can do I think.
The accepted answer does not seem to work if you try to set a cross-domain URL for the IFrame. As a workaround, I detached the IFrame from the DOM before setting the
src
(using jQuery).