我有一个页面是从一堆grails模板生成的,使用javascript小部件和东西,为我们正在开发的搜索引擎指定参数。问题是,如果有人点击搜索结果中返回的人并将其带到另一个页面,然后他们点击浏览器后退按钮,搜索参数和动态创建的小部件以及之前的搜索结果都将消失。
我真的不想以编程方式重新构建基于搜索参数的页面(我可以保存为会话变量),然后我必须重新运行搜索查询以获得结果。有没有办法像创建页面一样保存页面?
由于
答案 0 :(得分:0)
弹出一个javascript窗口,其中包含有关该人的信息,而不是将其带到另一个页面。在最坏的情况下,将person链接的目标设置为_new,这将强制打开新的浏览器窗口/选项卡。
答案 1 :(得分:0)
在某些地方,必须保存搜索参数。在服务器端或客户端。在服务器端,您只有session
或flash
范围选项。
在客户端,您可以将这些值存储在cookie中。这需要一些javascript。
然而,理论上,浏览器将保持手动更改表格字段值开箱即用。他通过名称/ id识别表单字段。没有必要以编程方式执行任何操作,除非您通过AJAX加载页面的某些部分。也许您可以双重检查,输入字段具有静态名称/ ID对,或者您有一些元/缓存/ html设置,这禁止这种机制(仔细检查,您的表单没有设置autocomplete="off"
。这将阻止浏览器重新填写表单字段。
Grails本身不提供开箱即用的东西(我不知道其他框架是否有 - 可能除了Seam,它有一个会话范围的概念;但即使这个功能也行不通如果用户使用浏览器后退按钮,则开箱即用)。最简单的方法是使您的搜索页面具有某种可缓存性(对于浏览器,通过设置HTTP标头或元标记),以便浏览器不会尝试再次从服务器重新加载页面,如果用户按下浏览器返回键。并仔细检查autocomplete="off"
设置。