console.log (this.contentWindow.location) не работает в сценарии JQuery - PullRequest
0 голосов
/ 05 мая 2020
• 1000 , страница B выполнит задачу, а затем перенаправит на страницу C, которая будет содержаться в том же модальном всплывающем окне. Здесь я хочу отключить кнопку «Закрыть» в модальном всплывающем окне, когда страница B активна, и включить ее, когда страница C перенаправлена.

ниже - это код Jquery, который я использовал при запуске код, страница B загружается, кнопка скрывается, затем, когда страница C загружается, но кнопка не отображается.

NB: моя страница использует главную страницу, и у меня есть Scriptmanager на главной странице

Пожалуйста, кто может найти ошибку в этом коде.

<script src="Scripts/jquery-3.4.1.min.js"></script>   
    <script src="Scripts/MicrosoftAjax.js"></script>

   <script type="text/javascript">
       function displayFrame()
       {
           $("#<%=Irm1.ClientID%>").attr("src", "pageB.aspx");
           $("[id*='Button2']").hide();
           $("#<%=Irm1.ClientID%>").on("load", function () {
               console.log(this.contentWindow.location);
               if (this.contentWindow.location.pathname == "/pageC.aspx") {
                   $("[id*='Button2']").show();
               }
           });
       }
   </script>

<asp:Button ID="btpageA" runat="server" OnClientClick="displayFrame()" Text="show page B" Width="99px" BackColor="#6699FF" Font-Bold="True" ForeColor="White" Height="38px" />

     <cc1:ModalPopupExtender ID="mp1" runat="server" PopupControlID="Panl1" TargetControlID="btpageA"  
    CancelControlID="Button2" BackgroundCssClass="Background">  
</cc1:ModalPopupExtender>  
<asp:Panel ID="Panl1" runat="server" CssClass="Popup" align="center" style = "display:none">  
    <iframe style=" width: 370px; height: 300px;" id="Irm1" runat="server"></iframe>  
   <br/>  
    <asp:Button ID="Button2" runat="server" Text="Close" />  
</asp:Panel>

1 Ответ

0 голосов
/ 05 мая 2020

Поместите событие onload перед изменением sr c:

function displayFrame() {
    $("#<%=Irm1.ClientID%>").on("load", function () {
        console.log(this.contentWindow.location);
        if (this.contentWindow.location.pathname == "/pageC.aspx") {
            $("[id*='Button2']").show();
        }
    });
    $("#<%=Irm1.ClientID%>").attr("src", "pageB.aspx");
    $("[id*='Button2']").hide();
}

И если это все еще не работает, проверьте, есть ли ошибка в консоли javascript. Если содержимое iframe поступает из другого домена, веб-браузеры не позволяют вам получить доступ к его свойствам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...