在我页面的 PreRender 事件中,我决定执行 response.redirect()
。
这意味着 <script language="JavaScript" type="text/javascript">
中没有包含任何 JavaScript。该页面上的标签将被执行。
我希望执行以下操作:
String allJavaScript = MagicFunctionThatReturnsAllJSInTheControl(someUserControl)
ClientScript.RegisterClientScriptBlock("".GetType(), "s", allJavaScript );
Response.Redirect("~/newpage.aspx",false);
你知道如何在 C#/vb.net 中编写MagicFunctionThatReturnsAllJSInTheControl(someUserControl)
代码吗?
谢谢
最佳答案
根据您最后的评论,我认为我有一个可能的解决方案,即使它没有按照最初所述回答您的问题。
因此,您希望 currentpage.aspx
中的脚本在客户端上执行,即使您正在将其重定向到 newpage.aspx
。在这种情况下,您可以避免 Response.Redirect()
并在客户端上执行重定向:
string redirectScript = String.Format(CultureInfo.InvariantCulture,
"window.location.href = '{0}';", ResolveUrl("~/newpage.aspx"));
ClientScript.RegisterClientScriptBlock(GetType(), "redirectScript",
redirectScript, true);
这样,客户端应该加载页面并执行其中的脚本,然后加载newpage.aspx
。如果您可以在加载重定向页面时让原始页面短暂可见,这可能会解决您的问题。
关于javascript - 如何从代码隐藏中的用户控件中提取所有 javascript 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9333472/