方案一:用iframe的name属性定位
<input type="button" name="Button" value="Button"
onclick="document.frames('ifrmname').location.reload()">
或
<input type="button" name="Button" value="Button"
onclick="document.all.ifrmname.document.location.reload()">
方案二:用iframe的id属性定位
<input type="button" name="Button" value="Button"
onclick="ifrmid.window.location.reload()">
终极方案:当iframe的src为其它网站地址(跨域操作时)
<input type="button" name="Button" value="Button"
onclick="window.open(document.all.ifrmname.src,'ifrmname','')">
利用js刷新页面gridview中行数据第一种方法:
function submitData() {
var tb = document.getElementById(IDArray[0]) //获取服务器控件GridView的ID
if (tb) {
var rows = tb.rows
for (var i = 1i <rows.lengthi++) {
var id = rows[i].cells[1].innerText
var name = rows[i].cells[2].innerHTML
var oDropDownList = rows[i].cells[3].childNodes[0]
var oText = oDropDownList.options[oDropDownList.selectedIndex].text //获取GridView中下拉列表中选中的文本
var oValue = oDropDownList.options[oDropDownList.selectedIndex].value //获取GridView中下拉列表中选中的值
}
}
}
第二种方法:
function submitData() {
var tb = document.getElementById(IDArray[0])
if (tb.hasChildNodes) {
if (tb.childNodes[0] != null) {
var rowCount = tb.childNodes[0].childNodes.length
for (var i = 1i <rowCounti++) {
var child = tb.childNodes[0].childNodes[i]
var id = rowCount[i].cells[1].innerHTML
var name = child.childNodes[1].innerHTML
var oDropDownList = child.childNodes[2].childNodes[0]
var oText = oDropDownList.options[oDropDownList.selectedIndex].textvar oValue = oDropDownList.options[oDropDownList.selectedIndex].value
}
}
}
你好,如题描述的结果是必然的。
首先,你需要明白两个问题:第一,js浏览器端脚本,执行在服务端内容响应成功之后,它的appendChild方法,只是在浏览器中进行了操作,并未向服务器发送保存请求(命令);第二,当你刷新页面的时候,你实际上是通过浏览器向服务器发送了一个请求,而当请求完成后你看到的界面是从服务端返回来的,并不是由浏览器直接产生。
明白了这两点,我给你举个例子说明下:
我们假设服务端有一个html文件,名为index.html,它包含题中所述的那段js
当你刷新页面的时候,index.html 的内容被请求到了浏览器,这时浏览器将它的内容显示给你
当页面显示完成(这里要看你js的位置或调用方式)之后,客户端js开始执行,将button添加到浏览器显示的内容中
而这时,服务器上index.html文件的内容并没有发生改变
所以当你再次刷新,从服务器取index.html的时候,页面内容就恢复到最初状态了。
希望说清楚了,如有疑问欢迎追问,望采纳~