Android WebView:设置 iframe src 重定向页面

Android WebView: Setting iframe src redirects the page

我正在 jquery ui 对话框中播放 YouTube 嵌入视频,其中包含 iframe。在 dialogClose 事件中,我清除了 iframe src,但它 redirects/postback 到 url 的页面。这是我的代码:

HTML:

<div id="videoDialog" title="Video Player">
    <iframe id="videoPlayer" src="" width="100%" height="500" style="border: 0px;" sandbox="allow-same-origin allow-scripts allow-popups allow-forms"></iframe>
</div>

JS:

var $videoDialog = $("#videoDialog").dialog({
        autoOpen: false,                    
        width: 900,
        height: "auto", 
        modal: true
    }),
    $iframeVideoPlayer = $("#videoPlayer");        


$(".video").on("click", function(){   
    $iframeVideoPlayer.prop("src", $(this).data("src"));
    $videoDialog.dialog("open");
  });

  $videoDialog.on("dialogclose", function(event) {           
     $iframeVideoPlayer.prop("src", "");//i set empty src here to iframe and it redirects the page     
  });

请帮忙。

它只发生在 android 网络视图中。在桌面浏览器中它工作正常

您是否尝试过使用 beforeClose 活动?

我刚刚在对话框关闭事件中从 DOM 中删除了对话框,并即时将对话框插入 DOM 以停止在设置 iframe src:

时重定向页面

这是我的代码:

var $videoDialog = $("#videoDialog").dialog({
        autoOpen: false,                    
        width: 900,
        height: "auto", 
        modal: true,
        close: function() {
            $videoDialog.remove();
        }
    }),
    $iframeVideoPlayer = $("#videoPlayer");     

    $(".video").on("click", function(){

       var videoSrc = $(this).data("src"); 

       $videoDialog = $("#videoDialog");  

       if($videoDialog.length == 0){

          //here appending dialog in body and .dialog it   
          $("body").append("<div id='videoDialog' title='Video Player'><iframe id='videoPlayer' src='"+videoSrc+"' width='100%' height='500' style='border: 0px;'></iframe></div>");

          $videoDialog = $("#videoDialog").dialog({
              autoOpen: false,                    
              width: 900,
              height: "auto", 
              modal: true,
              close: function() {               
                $videoDialog.remove();
              }
         });

        $iframeVideoPlayer = $("#videoPlayer");
     }

     $iframeVideoPlayer.prop("src", videoSrc);      
     $videoDialog.dialog("open");
 });