要求怎么都这么刁难呢!不过还是有办法。
用框架完全可以解决。
制作隐藏的框架,如果进需要保存输入的信息,则在里面设置变量并让他与输入时同步,来保存历史记录即可。
如果要保存整个页面则让该框架也打开对应页面并另输入同步即可。
并且如果你要保存更多的历史记录的话,可以使用iframe并且动态的生成iframe。
该方法可以实现WEB多页面编辑,曾经测试成功过。
用框架完全可以解决。
制作隐藏的框架,如果进需要保存输入的信息,则在里面设置变量并让他与输入时同步,来保存历史记录即可。
如果要保存整个页面则让该框架也打开对应页面并另输入同步即可。
并且如果你要保存更多的历史记录的话,可以使用iframe并且动态的生成iframe。
该方法可以实现WEB多页面编辑,曾经测试成功过。
解决方案 »
- ASP.NET mvc中用js文件简单问题。
- 单击文本框,不得焦点
- JavaScript导出页面数据到excel中能否设置sheet名?
- 关于firefox的问题
- 请教一个浏览器兼容性问题
- 用复选按钮选择多条记录存入数据库
- sb学javascript半年了,还是个sb,很多问题都很困扰,请教大家!
- 请教如何使一个列表框动态获取另一个列表框的onChange事件?吐血求助!!!请大家一定帮忙!!!
- 有没有办法让一个页面跳到所有窗口的最前面?很难!我认为!大家帮忙!来人有分!
- window.location.href统计搜索词
- 请问JavaScript能否调用动态链接库DLL?如果能,怎么调用?
- 正则表达式删除字符串中重复的部分
我这里的情况是,当有页面发生了异常会转到指定err页面来,在err页面抓取上一页。
所以这么做不合适
但可以通过其他方法模拟history
再提供另外一个思路就是把输入的值写入远程的数据库,利用xmlhttp来。
问题在于事先我不知道哪个页面、何时会发生异常,需要纪录下来,所以有异常可能要抓取整个body的内容。
其实你的用框架方法是可行的,但不合适的地方在于:
要随时记录当前页面:刷新、postback、跳转..
浪费:没有发生异常的话,这些纪录的信息就没有用。
消耗:虽然用js在client执行,但是这些页面是aspx的,暴多的绑定数据+viewstate+server已经令页面上的数据很大啦,而且这个项目有四五百个aspx页面,更何况要我每次抓取整个body..
history是浏览器保存的。
既然是提交表单,那么所有的页面信息都可以在提交处理过程中保存在服务器上。
出错后,把这些信息加以还原。
history对象封装好的,你没有办法用javascript这些语言去操作,只能使用它提供的几个公开的方法。所以解决办法就是关键业务提交时候保存所有画面的状态到服务器。
fantiny的思路,是在页面post给server时记录页面信息,这样只要在一个事件记录数据就可以了,这段数据我想应该只能放在seesion中了,因为它是不方便作为参数在各层中传递的。
-- 二位的想法都是先记录,出错了再调出来用。
意味着性能的一些下降;每个开发人员、每个页面都要写一些处理代码最初我的想法是在出错后还原现场,不过看来大家也认为不可能。
怎么js就不能返回个上一页的DOM什么的回来呢:(
也就是保存了历史.解决了后退失效的功能.你可以尝试使用ajax,来解决你的保存历史的问题.
如果正常处理的情况,没有必要保存在session里,只有错误处理的时候才保存。
这样选择的话,性能的一些下降也是有条件的下降,而且容易控制。
可以在页面上面制定一个通用错误模块,这样编码也方便。
但是错误处理,可能是在逻辑层或数据层触发的了,那个时候再获取页面的html会很困难的吧,
这样的话就只好每次提交都保存数据了,难做到发生异常时才获取和保存的
当你request过来的时候,实际上已经服务器端已经接受到了所有的数据,所以并不会带来多少的性能影响。
比如reponse.cookie("error")("form_username"),reponse.cookie("error")("cookie_username"),reponse.cookie("error")("queststring_username"),然后在err页调用。
开销大,最好是每页都能先清除cookie("error"),然后重写。仅供参考,不好了也勿骂,在这里我看了不少的帖子,骂人的多,提建议的少。
myvicy的方法适合独自开发、页面少的情况用。
我这里的情况是,当有页面发生了异常会转到指定err页面来,在err页面抓取上一页。
所以这么做不合适
然后再获取iframe的document内容
可取,在server端上尝试呢,不过又遇到其他问题,跟asp.net的机制有有些冲突,不过不属于这个话题啦。to beyond923:
其实你的思路跟myvicy差不多,先在客户端存下来,只是你用cookie,myvicy用frame控制和保存,其他的地方要实现起来差不多。
欢迎大家来讨论,可以争论,绝不会有谁骂人di。:)to lkh42002:
我最初也有这种想法,但是js里,只有"本页"后退才能获取上一页,自己的历史纪录只有自己能用。
如gzdiablo所说,history对象的所有方法和属性都没有返回值
要是能这么写 self.top.iframe[0].window = self.history.back(1)就好啦,
才不会搞得现在这么头疼
单就你这个问题来讲,你的程序应该有异常处理吧,可以在异常处理的地方把当前的信息记录下来,然后写到日志或者数据库当中。例如当前页面的URL,可以在onload时把location赋值给一个hidden的field.用户输入的信息就更好得到了。
是打算在异常处理时记录信息,
因为不知道用户做了什么操作导致的异常,
所以试图获取整个页面的html 。
就引起这个麻烦问题出来啦
不过我才看了几天的asp,也许那个viewstate可以利用一下。
如果你仅仅是需要在页面出错的时候希望保存出错信息的话,为什么不直接保存exception的内容?那个stacktrace已经足够你分析问题了吧?配合上httpcontext,估计分析错误所需要的资料就足够了
http://community.csdn.net/Expert/topic/5059/5059795.xml?temp=.405224代码现在不方便透露, sorry:D
http://community.csdn.net/Expert/topic/5059/5059795.xml?temp=.405224代码现在不方便透露, sorry:D:::::::::::::::::
open..
UP
目前临时用了这种方案:
在通知用户的前提下,由另一个frame控制主页面后退,获取html,用ajax传给server。
不过页面还是后退了,嘿嘿,有其他任务,暂用此方法。
有几位的方法很不错,我好好研究下。先揭帖了,有问题再讨论