Sil*_*Fox 16 html javascript forms jquery browser-history
我的页面中有以下代码,以便在DOM准备就绪时自动在页面上提交表单:
$(function () {
$('form').submit();
});
Run Code Online (Sandbox Code Playgroud)
但是,在下一页上,如果用户点击back他们的浏览器,它将返回到此页面之前的页面,而不是打开此代码的页面(无论如何都使用Chrome/IE).即浏览器历史记录中缺少包含表单的页面.
这很棒,虽然我想知道现在所有现代浏览器都能做到这一点吗?我正在寻找一个答案,引用官方来源,如来自互联网标准文件或浏览器供应商,说明他们已实施的机制.
这似乎只有在我调用submit()DOM ready或Window load事件中的函数时才会发生.
例如,此代码将在单击页面(后退/前进)后显示浏览器历史记录中的表单页面: -
document.addEventListener('click', function () { document.forms[0].submit(); }, false);
Run Code Online (Sandbox Code Playgroud)
以下片段不会: -
document.addEventListener('DOMContentLoaded', function () { document.forms[0].submit(); }, false);
window.addEventListener('load', function() { document.forms[0].submit(); }, false);
window.onload = function () { document.forms[0].submit(); };
Run Code Online (Sandbox Code Playgroud)
我以前处理过这个问题.我不想back button让用户回到上一页.使用onbeforeunload为我解决了问题......
但是您的问题与以下概念有关
"浏览上下文"是向用户呈现"文档"对象的环境.
"浏览上下文"中的"文档"序列是其"会话历史"."会话历史记录"将这些"文档"列为平面条目.
当我们在"会话历史"中从一个"文档"传播到另一个"文档"时,"替换已启用"生效.如果通过"Replacement Enabled"启动遍历,则删除紧接在指定条目之前的条目(在"会话历史记录"中).
注意 Web浏览器中的选项卡或窗口通常包含浏览上下文,框架集中的iframe或框架也是如此.
从逻辑上思考,通过调用其中任何一个
document.addEventListener( 'DOMContentLoaded', function() {document.forms[0].submit();}, false );
window.addEventListener( 'load', function() {document.forms[0].submit();}, false );
window.onload = function() {document.forms[0].submit();};
Run Code Online (Sandbox Code Playgroud)
你建议浏览器执行#3,因为这些调用意味着它一加载就会从页面传播开来.即使对我来说代码显然是:)要求从"会话历史"中清除.
进一步阅读......
| 归档时间: |
|
| 查看次数: |
1728 次 |
| 最近记录: |