关于iframe中访问父页面元素的提问。。。请大神帮忙!

dyboxer 2017-08-19 03:39:08
写了一个上传页面(upload_excel.asp),该页面中除了上传所需元素外,还包含一个iframe,此iframe中显示的是form 的action中的页面upload.asp(即服务器后台上传处理页面),,此页面主要结果如下:

<form id="myform" action="upload.asp" method="post" target="rfFrame" encType="multipart/form-data" >
<ul class="tick">
<li>请先选择要导入的文件,再点击“开始上传”按钮</li>
</ul>
<br/>
<input type="file" name="file1" id="file1" class="inputfile" data-multiple-caption="{count} files selected" />
<label for="file1"><span>请选择文件...</span></label>
<INPUT type="submit" id="submit" name="submit" value="" class="inputbutton" />
<label for="submit"><span>开始上传</span></label>
<input type="hidden" id="fileext" name="fileext" values=""/>
</form>
<iframe id="rfFrame" name="rfFrame" src="trick.html" value="Testing for iframe" frameborder="no" ></iframe>

此页面中定义了一个函数(jquery),用于子页面(upload.asp)调用,如下:
function cancelDisabledSubmitButton(){//后台任务完成执行
$("#submit",parent.document).next("label").find('span').html("开始上传");
$("#submit",parent.document).attr("disabled",false);
$("#file1+label",parent.document).find('span').html("请选择文件...");
$("#rfFrame",parent.document).show("slow"); // 原来的iframe是hide的
}

子页面upload.asp中如此调用上面这个函数:
<%
response.write "<script>parent.cancelDisabledSubmitButton();</script>"
%>


现在的问题是:
1、在浏览器中运行upload_excel.asp中完全实现功能,并运行的很稳定!子页面upload.asp也完全实现了功能;
正常运行时其frame中会show出来,同时上传按钮恢复初始状态。
见截图:

2、现在将upload_excel.asp并入网站主页(start.asp)中通过<a>标签调用,则不正常!感觉上面的函数没被执行!
在start.asp中如此调用:
<li><a href="upload3/upload_excel.asp" target="iframeid">批量导入准客户</a></li>
注意upload_excel.asp也是在一个iframe中运行的。
程序上传、写库都运行了,唯独按钮行为修改(包括提示字未改),显然是调用上面函数有问题。见下图


请大神们帮忙看一下,问题出在哪里?谢谢!!!


...全文
165 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dyboxer 2017-08-19
  • 打赏
  • 举报
回复
明白了!谢谢!!!!!以分表心意!
天际的海浪 2017-08-19
  • 打赏
  • 举报
回复
你还是没明白吗? 函数操作的页面环境是定义函数的页面,不是调用函数的页面 在upload_excel.asp页面中用 parent 访问的是upload_excel.asp页面的父页面(也就是start.asp) 如果upload_excel.asp直接打开就没有父页面, parent会等于window
dyboxer 2017-08-19
  • 打赏
  • 举报
回复
如果在start.asp中的调用 <li><a href="upload3/upload_excel.asp" target="iframeid">批量导入准客户</a></li> 改成: <li><a href="upload3/upload_excel.asp" >批量导入准客户</a></li> 则运行正常!即不在iframe中打开就正常了!!!真是奇怪!
dyboxer 2017-08-19
  • 打赏
  • 举报
回复
这个函数是在父页面中定义的(在upload_excel.asp), 调用此函数是在upload.asp中,是后台处理页面。并且单独运行upload_excel.asp完全正常,但把upload_excel.asp放入另一个iframe中时就不正常了!
天际的海浪 2017-08-19
  • 打赏
  • 举报
回复
cancelDisabledSubmitButton函数是在父页面(upload_excel.asp)中,操作的又都是本页面的元素,就不要写parent.document了 function cancelDisabledSubmitButton(){//后台任务完成执行 $("#submit").next("label").find('span').html("开始上传"); $("#submit").attr("disabled",false); $("#file1+label").find('span').html("请选择文件..."); $("#rfFrame").show("slow"); // 原来的iframe是hide的 }

87,989

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧