jquery 如何在iframe中阻止弹出窗口、横幅广告和视频广告?

eqfvzcg8  于 2023-04-29  发布在  jQuery
关注(0)|答案(3)|浏览(216)

我嵌入的视频有一个出口弹出横幅广告和视频广告。当你在任何地方的视频然后弹出打开自动或如何点击X图标关闭横幅广告。

.iframe{
  width: 100%;
  float: left;
  margin-top: 5px;
}
<div class="iframe">
   <iframe width="1000" height="600" src="https://www.youtube.com/embed/Sb_60g3u1LU" frameborder="0" gesture="media" allow="encrypted-media" allowfullscreen></iframe>
</div>

我正在使用其他第三方网站托管视频,如 www.example.com & www.example.com 和这些网站都充满了弹出窗口和横幅广告的视频播放器。

wsewodh2

wsewodh21#

您可以在iframe中添加sandbox属性。只允许您添加到属性的值。浏览器将不允许任何未添加到sandbox属性中的值。
沙盒属性具有以下值:

allow-forms
allow-pointer-lock
allow-popups
allow-same-origin
allow-scripts
allow-top-navigation

我已经修改了你的代码,包括沙盒选项,但没有添加allow-popups,所以弹出窗口将不允许在这个iframe。

<div class="iframe">
   <iframe sandbox = "allow-forms allow-pointer-lock allow-same-origin allow-scripts allow-top-navigation" width="1000" height="600" src="https://www.youtube.com/embed/Sb_60g3u1LU" frameborder="0" gesture="media" allow="encrypted-media" allowfullscreen></iframe>
</div>

你可以找到更多关于沙盒属性here的信息。请注意,这个属性在HTML5中是新的。

km0tfn4u

km0tfn4u2#

我在我的流媒体网站上使用了sandbox函数,其中我Embed第三方iframe,他们也有sandbox保护检查,但对于iv'e在我的JS中添加了removeAttribute,因此如果您更改了iframesrc,您可以单击此按钮将sandbox属性添加到你的iframe或者你也可以在你成功获取iframe的代码中添加click function

//JS
window.onload = function(){
    var button = document.getElementsByName("sandbox")[0]
    var iframe = document.getElementsByName("framez")[0]
    button.addEventListener('click',sndbx,false);

    function sndbx(){
    var nibba = document.getElementById("framez").src;
    if(iframe.sandbox == 'allow-forms allow-pointer-lock allow-same-origin allow-scripts allow-top-navigation'){
    document.getElementById("framez").removeAttribute("sandbox"); 
    }
    frames['framez'].location.href=nibba;
    iframe.sandbox = 'allow-forms allow-pointer-lock allow-same-origin allow-scripts allow-top-navigation';
    }
}
<!--HTML-->
<button name="sandbox">SandBox</button>
<iframe name="framez" id="framez" src="YOUR_SOURCE" allowfullscreen="true"></iframe>
j0pj023g

j0pj023g3#

在加载Iframe后使用沙箱,这样如果有人阻止沙箱,它仍然可以工作。

<script>
var frames = document.getElementsByTagName('iframe');
for (var frame of frames) {
    frame.setAttribute("sandbox", "allow-modals allow-orientation-lock allow-pointer-lock allow-presentation allow-scripts allow-top-navigation allow-forms");
}
</script>

相关问题