刷新页面保留input所填的值_页面刷新时保留input键入值

一般来说,页面刷新时不保留input键入值的需要比较多,但是也有例外,譬如咱这次就遇上需要保留input键入值。

在firefox这不是问题,ie的刷新机制导致刷新页面时不会从浏览器缓存中读取,所以我们需要解决的问题也集中在ie下。

Html代码

input{behavior:url(#default#savehistory)};

大致思路是利用行为标签(behavior),在访问页面时默认读取缓存,这里主要是针对ie,firefox默认设置就是如此.

关于behavior标签的使用方法,相见css手册

引用

语法:

behavior : url (url) | url (#objID ) | url (#default#behaviorName)

参数:

url (url) : 使用绝对或相对地址指定DHTML行为组件(.htc)

url (#objID ) : 用二进制实现DHTML行为,#objID为object对象指定的id特性

url (#default#behaviorName) : IE的默认行为。由behaviorName指定

说明:

设置或检索对象的DHTML行为。

多个行为之间用空格隔开。

关于DHTML行为,请参阅我所编写的其他教程。

对应的脚本特性为behavior。请参阅我编写的其他书目。

示例:

div { behavior: url(fly.htc) url(shy.htc); }

如此这般操作后,使用浏览器的刷新按钮在ie下已经能保存input键入值了。

-----------------------------------------------------

不过,我们的工作还没有结束,因为在实际使用中,需要通过js来刷新页面。如果使用window.location.reload();这样的常用刷新操作,ie下依旧会重新加载而不读取浏览器缓存。

那么新的问题出现了,如何才能在用js刷新页面的情况下仍然保存上一次input的键入值呢?

为此,我们更换了刷新方法,使用了execCommand方法

不过值得注意的是execCommand方法并不适应于firefox,我们在js中使用try/catch来解决这个问题,代码如下:

Js代码

try{

//for IE

document.execCommand('Refresh',false,0);

}catch (BorwerSupportException){

//for firefox

window.location.reload();

}

测试通过,成功!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了实现父组件修改input后调用子组件刷新,可以使用以下方法: 1. 在父组件定义一个data属性,用于存储input。 2. 将这个data属性通过props传递给子组件。 3. 在子组件,使用这个props来绑定input的value属性。 4. 在父组件,定义一个方法来修改data属性的,并通过$emit方法触发一个自定义事件。 5. 在子组件,监听这个自定义事件,并在事件处理函数重新绑定input的value属性。 下面是一个示例代码: ```html <!-- 父组件 --> <template> <div> <input type="text" v-model="inputValue" @input="updateInputValue"> <ChildComponent :value="inputValue" @update="updateInputValue"></ChildComponent> </div> </template> <script> import ChildComponent from './ChildComponent.vue' export default { components: { ChildComponent }, data() { return { inputValue: '' } }, methods: { updateInputValue(value) { this.inputValue = value this.$emit('input-change', value) } } } </script> <!-- 子组件 --> <template> <div> <input type="text" :value="value" @input="updateValue"> </div> </template> <script> export default { props: { value: { type: String, default: '' } }, methods: { updateValue(event) { this.$emit('update', event.target.value) } } } </script> ``` 在这个示例,父组件inputValue属性通过props传递给了子组件,并绑定到了子组件的input元素的value属性上。当父组件input发生变化,会触发updateInputValue方法,该方法会修改inputValue属性的,并通过$emit方法触发一个自定义事件。子组件监听这个自定义事件,并在事件处理函数重新绑定input的value属性,从而实现了父组件修改input后调用子组件刷新的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值