我在VB.NET中有一个ASP.NET应用程序。我的页面中有一个Javascript函数和另一个函数。我需要这个脚本来渲染和提交一个on .mypage.aspx
callback.aspx
IFrame
mypage.aspx
当我点击提交按钮时:
<asp:Button ID="subbtn" Name="Submit" OnClientClick="onsubmit_action();" runat="server" />
执行此脚本,其中iframeId
的 id 是IFrame
:
function onsubmit_action() {
submitPage('iframeId');
}
(验证或成功)的响应IFrame
被提交到callback.aspx
文件中。我猜这是通过调用文件中的回调函数的跨站点脚本callback.aspx
发生的;
function callback()
{
parent.pagecallback_success('<%=Request.QueryString("Id")%>');
}
调用函数mypage.aspx
function pagecallback_success(ref_id) {
var Url = "mypage.aspx?";
Url += "id=" + id;
window.location.href = Url;
}
该脚本按预期工作。现在,我想调用一个服务器函数
Protected Function Store(ByVal id As String) As Boolean
输入mypage.aspx.vb
并传递变量id
:
function hostedpagecallback_success(id) {
var Url = "mypage.aspx?";
Url += "id=" + id;
window.location.href = Url;
"<%= Store(id) %>"
}
问题是编译器将其id
视为服务器端函数并给出编译错误。但是,如果我使用 a sub
(不带参数)而不是函数,sub
则执行 3 次, on page_load
,当IFrame
接收到时,再执行一次(连接是 https 无法有效地调试Javascript)。
我不擅长跨站点脚本和代码块,可能真的很琐碎但我不知道如何解决这个问题。有人吗?