为什么点击时会从iframe中删除属性?

立方体统治

我单击图像,弹出窗口工作正常。但是,当我在弹出窗口之外单击时,iframe allowfullscreen和frameborder属性将被删除。我再次单击弹出窗口,然后全屏工作,并且出现白线。我希望弹出窗口在关闭后停止播放视频,并让iframe恢复为没有src并保留其属性。

我试过了:

  • 使用javascript / jquery更新属性
  • 通过javascript / jquery替换html(注释掉)

的HTML

<!DOCTYPE html>
<html>
<head>
    <title></title>
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>

<link rel="stylesheet" href="/css/portfolio.css" type="text/css">



</head>
<body>
<div class="page">
    <a href="#media-popup" data-media="//www.youtube.com/embed/videoID"><img src="" width="100" height="100"></a>
    <a href="#media-popup" data-media="//www.youtube.com/embed/videoID"><img src="" width="100" height="100"></a>

    <div class="popup" id="media-popup">
        <iframe width="560" height="315" src="" frameborder="0" allowfullscreen="1"></iframe>
    </div>
</div>
<script src="/javascript/portfolio.js">
</script>



    
    
    
$("[data-media]").on("click", function(e) {
    e.preventDefault();
    var $this = $(this);
    var videoUrl = $this.attr("data-media");
    videoUrl += "?autoplay=1";
    var popup = $this.attr("href");
    var $popupIframe = $(popup).find("iframe");

    $popupIframe.attr("src", videoUrl);

    $this.closest(".page").addClass("show-popup");

});

$(".popup").on("click", function(e) {
    e.preventDefault();
    e.stopPropagation();
    //$("#media-popup").html('<iframe width="560" height="315" src="" frameborder="0" allowfullscreen="1"></iframe>');
    $(".page").removeClass("show-popup");

});


$(".popup > iframe").on("click", function(e) {
    e.stopPropagation();

});
html,
body {
    margin:0; padding:0; height:100%;
}
p {
    margin:0;
}
.page {
    position: relative;
    height:100%;
}

.popup {
    position:absolute;
    z-index:2;
    top:0;
    left:0;
    width:100%;
    height:100%;
    background:rgba(0,0,0,0.7);
    opacity:0;
    visibility:hidden;
    transition:.3s ease;
}

.show-popup .popup {
    opacity:1;
    visibility: visible;    
}

.popup > iframe {
    position:absolute;
    top:50px;
    left:50%;
    margin-left:-280px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<head>
    <title></title>
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>

<link rel="stylesheet" href="/css/portfolio.css" type="text/css">



</head>
<body>
<style src="/css/portfolio.css">
</style>
<div class="page">
    <a href="#media-popup" data-media="//www.youtube.com/embed/videoID"><img src="" width="100" height="100"></a>
    <a href="#media-popup" data-media="//www.youtube.com/embed/videoID"><img src="" width="100" height="100"></a>

    <div class="popup" id="media-popup">
        <iframe width="560" height="315" src="" frameborder="0" allowfullscreen="1"></iframe>
    </div>
</div>
<script src="/javascript/portfolio.js">
</script>

</body>
</html>
</body> </html>

的CSS

html,
body {
    margin:0; padding:0; height:100%;
}
p {
    margin:0;
}
.page {
    position: relative;
    height:100%;
}

.popup {
    position:absolute;
    z-index:2;
    top:0;
    left:0;
    width:100%;
    height:100%;
    background:rgba(0,0,0,0.7);
    opacity:0;
    visibility:hidden;
    transition:.3s ease;
}

.show-popup .popup {
    opacity:1;
    visibility: visible;    
}

.popup > iframe {
    position:absolute;
    top:50px;
    left:50%;
    margin-left:-280px;
}

Javascript / jQuery

$("[data-media]").on("click", function(e) {
    e.preventDefault();
    var $this = $(this);
    var videoUrl = $this.attr("data-media");
    videoUrl += "?autoplay=1";
    var popup = $this.attr("href");
    var $popupIframe = $(popup).find("iframe");

    $popupIframe.attr("src", videoUrl);

    $this.closest(".page").addClass("show-popup");

});

$(".popup").on("click", function(e) {
    e.preventDefault();
    e.stopPropagation();
    //$("#media-popup").html('<iframe width="560" height="315" src="" frameborder="0" allowfullscreen="1"></iframe>');
    $(".page").removeClass("show-popup");

});


$(".popup > iframe").on("click", function(e) {
    e.stopPropagation();

});

立方体统治

那是jQuery。需要onLoad。

$(document).ready(function() {

    var $popupIframe;

    $("[data-media]").on("click", function(e) {
        e.preventDefault();
        var $this = $(this);
        var videoUrl = $this.attr("data-media");
        videoUrl += "?autoplay=1";
        var popup = $this.attr("href");
        $popupIframe = $(popup).find("iframe");

        $popupIframe.attr("src", videoUrl);

        $this.closest(".page").addClass("show-popup");

    });

    $(".popup").on("click", function(e) {
        e.preventDefault();
        e.stopPropagation();
        //$("#media-popup").html('<iframe width="560" height="315" src="" frameborder="0" allowfullscreen="1"></iframe>');
        $(".page").removeClass("show-popup");
        $popupIframe.attr('src', '');
    });


    $(".popup > iframe").on("click", function(e) {
        e.stopPropagation();
    });
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我的UISearchBar在点击时会缩小?

为什么在触发点击时会遇到太多递归?

为什么“to”道具在点击时会发生变化?

为什么宽度属性在更改 html 中的填充属性时会发生变化

为什么将 base64 内容加载到 iframe src 属性有时会失败

为什么在Java Servlet中的会话中设置属性有时会失败?

为什么PostgreSQL中的分区表在删除时会锁定其他表?

为什么读取属性有时会在javascript中引发错误?

为什么有时会忽略 flexbox 中的纵横比 CSS 属性?

CKEditor配置,为什么要删除span属性中的id?

为什么在iframe之后删除元素

SVG:iframe无法删除!为什么?

同位素为什么会干扰点击进入iFrame?

为什么 Python 中的海龟模块在尝试访问它时会出现一个 screen 属性导致属性错误?

为什么composedPath在属性不存在时会抛出异常,但在属性存在时会起作用?

为什么Powershell在替换时会删除“ $”之一?

为什么熊猫在写入csv时会删除前导零?

为什么在修改类的本地属性时会执行 ngOnChanges?

为什么再次调用 viewDidLoad 时会保留属性的值

使用$ ref时会忽略Swagger架构属性-为什么?

为什么导航属性有时会返回null?

为什么对象在向上转换时会保存属性

TinyMCE删除了iframe中的allowfullscreen属性?

为什么在Java 8中split有时会在结果数组的开头删除空字符串?

为什么在迭代时添加到集合中和从集合中删除时会得到这么多迭代?

为什么在迭代时添加到集合中和从集合中删除时会得到这么多迭代?

如果我单击iframe中的任何链接,为什么它没有更改src属性?

为什么当我向链接到母版页的页面中的按钮添加点击事件时会出现编译错误

为什么我无法获得点击元素属性?