专题1234导航

如何禁止页面加载的iframe里面的编辑框,按钮等的操作

来源:互联网
发表时间:2017/4/19 11:04:44
责任编辑:李志喜
字体:
为了帮助网友解决“如何禁止页面加载的iframe里面的编辑框,按钮等的操作”相关的问题,mr007通过互联网对“如何禁止页面加载的iframe里面的编辑框,按钮等的操作”相关的解决方案进行了整理,用户详细问题包括:要在页面中加载一个iframe, 显示iframe里面的内容,但禁止操作里面的按钮或者录入框


            $("#myiframe").attr("disabled", true);
            document.getElementById('myiframe').disabled=true;


这样都不行

谢谢,具体解决方案如下:
解决方案1:

//$(selector,contentDocument),选择器后可以再加一个参数,代表上下文文档,你要选择iframe里面的按钮和文本框就把iframe的document当参数加上
$('input,button',$('#myiframe').prop('contentDocument')).prop('disabled',true)
解决方案2:
引用 1 楼 xiaojunjor 的回复:

//$(selector,contentDocument),选择器后可以再加一个参数,代表上下文文档,你要选择iframe里面的按钮和文本框就把iframe的document当参数加上
$('input,button',$('#myiframe').prop('contentDocument')).prop('disabled',true)


我是希望 a页面用iframe 加载 B页面, 在a页面的js中设置b页面的所有输入,按钮都不能操作
试了一下你上面那个, 没起作用

谢谢
解决方案3:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <style>
        iframe{
            pointer-events:none;
        }
    </style>
</head>
<body>
    <iframe src="http://pic.xue163.com/http://www.baidu.com"></iframe>
</body>
</html>

不跨域的话iframeDom.contentWindow.document可以获取到对应的iframe里的元素 然后自己设置disabled
跨域的话如果那面配合的话可以用postMessage或者加个标志参数
如果都不行的话就pointer-events直接禁止掉所有操作了
解决方案4:
引用 2 楼 chilli6519 的回复:
Quote: 引用 1 楼 xiaojunjor 的回复:


//$(selector,contentDocument),选择器后可以再加一个参数,代表上下文文档,你要选择iframe里面的按钮和文本框就把iframe的document当参数加上
$('input,button',$('#myiframe').prop('contentDocument')).prop('disabled',true)


我是希望 a页面用iframe 加载 B页面, 在a页面的js中设置b页面的所有输入,按钮都不能操作
试了一下你上面那个, 没起作用

谢谢

 
//那应该是iframe没加载完,找不到input和button,改成这样:
       $(function () {
            $('#myiframe').load(function () {
                $('input,button', $(this).prop('contentDocument')).prop('disabled', true)
            })
        })
解决方案5:
$(':input',document.getElementById('iframeID').contentWindow.document)

引用 2 楼 chilli6519 的回复:
Quote: 引用 1 楼 xiaojunjor 的回复:


//$(selector,contentDocument),选择器后可以再加一个参数,代表上下文文档,你要选择iframe里面的按钮和文本框就把iframe的document当参数加上
$('input,button',$('#myiframe').prop('contentDocument')).prop('disabled',true)


我是希望 a页面用iframe 加载 B页面, 在a页面的js中设置b页面的所有输入,按钮都不能操作
试了一下你上面那个, 没起作用

谢谢

iframe onload中执行js,你执行位置应该不对,而且注意导入jquery。本地file浏览不要用webkit核心浏览器如chrome,急速模式I的360,无法相互访问。并且加载的页面不能跨域。跨域的话可以用透明的层遮盖住iframe
<iframe src="b.html" onload="$(this.contentWindow.document).find(':input').prop('disabled',true)"></iframe>

chrome本地测试访问iframe,parent,opener null解决办法
解决方案6:
引用 5 楼 showbo 的回复:
$(':input',document.getElementById('iframeID').contentWindow.document)

Quote: 引用 2 楼 chilli6519 的回复:

Quote: 引用 1 楼 xiaojunjor 的回复:


//$(selector,contentDocument),选择器后可以再加一个参数,代表上下文文档,你要选择iframe里面的按钮和文本框就把iframe的document当参数加上
$('input,button',$('#myiframe').prop('contentDocument')).prop('disabled',true)


我是希望 a页面用iframe 加载 B页面, 在a页面的js中设置b页面的所有输入,按钮都不能操作
试了一下你上面那个, 没起作用

谢谢

iframe onload中执行js,你执行位置应该不对,而且注意导入jquery。本地file浏览不要用webkit核心浏览器如chrome,急速模式I的360,无法相互访问。并且加载的页面不能跨域。跨域的话可以用透明的层遮盖住iframe
<iframe src="b.html" onload="$(this.contentWindow.document).find(':input').prop('disabled',true)"></iframe>

chrome本地测试访问iframe,parent,opener null解决办法


没有跨域,在iframe的加入你这个,也不行

解决方案7:
什么版本的jquery?1.6+用prop,以下的prop改为attr。

而且不要用chrome测试,除非你发布访问通过http协议访问了
www.xue163.com true http://www.xue163.com/588880/39215/392157553.html report 5786 如何禁止页面加载的iframe里面的编辑框,按钮等的操作:解决方案1://$(selector,contentDocument),选择器后可以再加一个参数,代表上下文文档,你要选择iframe里面的按钮和文本框就把iframe的document当参数加上$('input,button',$('#myiframe').prop('contentDocument')).prop('disabled',true)解决方案2:引用 1 楼 xiaojunjor 的回复://$(selector,contentDocument),选...
相关信息
最近关注
首页推荐
热门图片
最新添加资讯
24小时热门资讯
精彩资讯
精彩推荐
热点推荐
真视界
精彩图片
社区精粹
关于本站 | 广告服务 | 手机版 | 商务合作 | 免责申明 | 招聘信息 | 联系我们
Copyright © 2004-2016 Xue163.com All Rights Reserved. mr007 版权所有
京ICP备10044368号-1 京公网安备11010802011102号