如何使用js在两个aspx页面之间进行通信?

问题描述 投票:1回答:2

我有两个aspx页面,即one.aspx和two.aspx,并且我有一个名为link.js的javascript文件

现在,我需要使用javascript文件作为中间内容在这两个aspx页面之间进行通信。

在one.aspx文件中,我有一个ModalPopupExtender,其面板的内容位于two.aspx中,即“ one.aspx”中:

<html>
<head>    
<script type="text/javascript" src="link.js"></script>

<script type="type="text/javascript">
   function test(){
     var str=callPopup();
     document.getElementById('pnlPopUp').innerHtml = str;
   }
</script>
</head>
<body>
<ajaxToolkit:ModalPopupExtender ID="popup1" runat="server" TargetControlID="btnOK" CancelControlID="btnCancel" PopupControlID="pnlPopUp"></ajaxToolkit:ModalPopupExtender>

<asp:Panel ID="pnlPopUp" runat="server"></asp:Panel>

  </body> 
</html>

在“ two.aspx”中:

<html>
  <head>
    <script type="text/javascript" src="link.js"></script>
   </head>
  <body>
<asp:Panel ID="pPanel1" runat="server">
    <table>
        <tr>
            <td>
                <p>test</p>
            </td>
            <td>
                <asp:Button ID="BtnTest" runat="server" Text="Click" OnClientClick="javascript:alert('hello world..!'); return false;" />
            </td>
        </tr>
    </table>
</asp:Panel> </body> </html>

在link.js中:

function callPopup() {
    var s = document.getElementById('pPanel1').innerHtml;
    return s;
}

我能够从one.aspx调用callPopup(),但无法从two.aspx页面获取内容。 请帮我。

提前致谢。

javascript asp.net .net modalpopupextender
2个回答
0
投票

我将为您提供2种方法来完成此操作。

  1. 使用SignalR广播到多个客户端。 在https://github.com/SignalR/SignalR上了解更多

  2. (级别较低。SignalR通常会为您处理所有这一切)

尝试使用Ajax调用功能服务器端: http : //www.w3schools.com/ajax/default.asp 。 然后,您可以将称为服务器端的功能写入某些输出源。 一些示例:文件,会话,cookie。

然后让另一个网页通过Ajax从相同的输出(文件,会话或cookie)源中不断读取。


0
投票

您确定您的架构正确吗? 确实有一个很好的理由为什么您需要two.aspx-one.aspx不能全部完成吗?

过去曾经使用过AjaxToolkit,但我很难想出在现代Web开发中使用它的充分理由。 您是否看过http://knockoutjs.com/Backbone ? 他们真的值得一看。

我知道这并不能回答你的问题本身 ,我只是想救你脱离痛苦的世界。

© www.soinside.com 2019 - 2024. All rights reserved.