C# 将值从opener传递到弹出窗口,并在服务器端而不是客户端处理它。不能使用一个GET
我有一个aspx网页(opener),它会打开一个弹出窗口 在弹出窗口中,我需要检索一个隐藏字段的值,该字段存在于opener页面中 因此,这一切都是直接使用Javascript实现的 然而,问题是,我需要在加载弹出页面之前在服务器端处理隐藏字段的值 (基本上,隐藏字段包含需要在服务器端反序列化的XML以及用于构建弹出页面DOM的数据) 那么,我如何在打开程序的隐藏字段中传递数据,以便在弹出窗口中处理服务器端 数据太长,无法作为GET传递。i、 e.在弹出页面的查询字符串中 这里还有什么其他选择C# 将值从opener传递到弹出窗口,并在服务器端而不是客户端处理它。不能使用一个GET,c#,.net,javascript,html,C#,.net,Javascript,Html,我有一个aspx网页(opener),它会打开一个弹出窗口 在弹出窗口中,我需要检索一个隐藏字段的值,该字段存在于opener页面中 因此,这一切都是直接使用Javascript实现的 然而,问题是,我需要在加载弹出页面之前在服务器端处理隐藏字段的值 (基本上,隐藏字段包含需要在服务器端反序列化的XML以及用于构建弹出页面DOM的数据) 那么,我如何在打开程序的隐藏字段中传递数据,以便在弹出窗口中处理服务器端 数据太长,无法作为GET传递。i、 e.在弹出页面的查询字符串中 这里还有什么其他选择
对于这类问题,我通常的解决方案是使用XmlHTTPRequest将XML发布到服务器,服务器只需根据某个唯一ID(如GUID)存储XML,并从服务器返回ID
然后,您为弹出窗口提供的URL只需要携带此ID,而不需要携带整个XML。现在,当URL另一端的服务器代码需要XML时,它可以使用ID查找XML(可能同时从其临时存储中删除),并可以处理XML,就好像请求中已发布一样。编辑:抱歉,我意识到这不能回答您的问题。我读得不够清楚,也没有意识到您需要在服务器端执行此操作。我想如果你想走这条路,你可以用AJAX来构建你的页面 父页面:
foo = 'bar';
child = open ("popup.html");
// you can now access the new windows functions with child.varname and child.function()
子页面:
alert(window.opener.foo);
应该提醒富。因此,您可以:
somevar = window.opener.document.getElementById('id').value;
获取字段的值。有这样一个表单
<form method="POST" action="action.php" onsubmit="open_popup(this);">
<input name="really-big-field" type="hidden">
</form>
function open_popup(form)
{
window.open('action.php', 'actionpopup','width=400,height=300');
form.target = 'actionpopup';
}
是的,正如问题中所述,我意识到我可以用Javascript实现这一点。问题是,我不希望在客户端处理数据,而是在服务器端处理数据