Firefox back button vs iframes

2019-07-07 05:31发布

In Firefox if the window.location of an iframe is changed, this gets populated to the history of the top level window.

If the user now clicks the browser back button, the contents of the iframe will change rather than the browser going back to the previous HTML page.

This is totally wrong for some architectures.

Is there any way with JavaScript to prevent Firefox (3.x) from doing this?

(Please stick to just this question, not why/when/how iframes versus other techniques should be used.)

3条回答
Emotional °昔
2楼-- · 2019-07-07 05:56
兄弟一词,经得起流年.
3楼-- · 2019-07-07 05:59

Is there any way with JavaScript to prevent Firefox from doing this?

Type into the adress bar about:config and look for the option "browser.cache.memory.enable" and change the value to false. Then disable also the cache on filesystem with option "browser.cache.disk.enable". After that this behaivor should be gone, so far the theory.

P.S.: I've never tried it personally.

查看更多
淡お忘
4楼-- · 2019-07-07 06:09

I have the same issue and was researching possible ways around it when I read this. I don't know if you solved the problem, but I think I'm going to use the unload event in the IFrame'd window to notify the parent window when it's unloaded.

If the iframe is closed by a 'valid' method, a variable is set at the parent to say the iframe is expected to unload

If the parent reloads / changes the src of the iframe a variable is set to say the unload is expected

If an unexpected unload happens in the iframe I assume it was the back button and update the parent page accordingly (e.g. jump another step back in the parent's history, or do something else).

The only ugly case here is if the parent page is unloaded and the iframe also throws unload - depending on how quickly the parent page changes you might get a race condition where the parent's iframe unload handler is or isn't fired.

查看更多
登录 后发表回答