禁止iframe嵌套网页的alert弹出框

新做项目需要引用一个页面,然后页面里老是有弹出框报一些代码。

百度查了很多禁止iframe的alert办法,最多的都是说用

//禁止alert
    window.alert = function(){
        alert('111');
    }


//禁止iframe的alert
var iframe = document.getElementById("Pcyear"); //获取到iframe的id
    iframe.contentWindow.alert=function(){ //iframe的window是contentWindow
        alert("弹弹弹!");//这里对alert做处理
    }

这个代码试过很多次都无效,不知道是不是因为嵌套网页的alert并不是全局的,都是写在某个条件里触发的原因。

然后我就尝试用html5的iframe属性来进行安全限制

sandbox   其中有一个属性  allow-scripts:允许嵌入页面执行脚本代码(但不能弹新窗口)

原本以为不能弹新窗口就是不能弹出新的页面,结果试了一下,alert确实没有了

<iframe name="showZip" frameborder="0" width="100%" height="100%" id="Pcyear" sandbox='allow-scripts allow-same-origin'></iframe>

sandbox安全策略有几个属性:
allow-same-origin:允许嵌入内容访问遵循同源策略的资源,如本地存储、cookie、XHR等。
allow-top-navigation:允许嵌入的页面对顶层页面进行导航。
allow-forms:允许嵌入内容提交表单。
allow-scripts:允许嵌入页面执行脚本代码(不能弹出新窗口)
seamless属性可以使iframe也顶层页面融为一体。Srcdoc属性可以指定iframe内容。
<iframe seamless srcdoc="<p>我是框架</p>"></iframe>

猜你喜欢

转载自blog.csdn.net/qq_39201210/article/details/81093993
今日推荐