我有两个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页面获取内容。 请帮帮我。
提前致谢。
答案 0 :(得分:0)
我会给你两种方法来实现这一目标。
使用SignalR向多个客户端广播。阅读更多https://github.com/SignalR/SignalR
(更低级别.SignalR通常会照顾你所有这些)
尝试使用Ajax调用功能服务器端:http://www.w3schools.com/ajax/default.asp。 然后,您可以将名为服务器端的函数写入某个输出源;一些例子:文件,会话,cookie。
然后让其他网页通过Ajax从同一输出(文件,会话或cookie)源不断读取。
答案 1 :(得分:0)
您确定您的架构是否正确? 你真的有一个很好的理由需要two.aspx - 不能one.aspx这么做吗?
过去使用过AjaxToolkit,我很难想到在现代Web开发中使用它的好理由。你看过http://knockoutjs.com/还是Backbone了?他们真的值得一看。
我知道这不会回答你的问题本身,我只是想让你远离痛苦的世界。