【问题标题】:Android WebView: Setting iframe src redirects the pageAndroid WebView:设置 iframe src 重定向页面
【发布时间】:2016-01-18 09:19:21
【问题描述】:

我正在我的 jquery ui 对话框中播放 youtube 嵌入视频,其中包含 iframe。在 dialogClose 事件中,我清除了 iframe src,但它会将页面重定向/回发到该 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 webview 中。在桌面浏览器中它工作正常

【问题讨论】:

    标签: javascript android jquery iframe android-webview


    【解决方案1】:

    您是否尝试过使用beforeClose 事件?

    【讨论】:

      【解决方案2】:

      我刚刚在对话框关闭事件中从 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");
       });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-09-08
        • 2018-07-31
        • 1970-01-01
        • 1970-01-01
        • 2012-11-22
        • 2011-01-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多