0

在我的应用程序(asp.net - 使用 vb 作为语言背后的代码)中,服务器端 (vb) 页面加载代码首先运行,然后在完成时运行 javascript onload。无论如何要先运行javascript onload吗?我的 javascript 从父窗口(使用 iframe)获取变量的值,并使用它在子窗口中设置控件。页面加载处理控件集(如果来自父级的值是某个值,则将自动选中不同的复选框)。

我能想到的这个问题的唯一其他解决方案是检查当前的值,以查看在另一个生成页面 html 的函数运行时是否选中了这些框。问题在于该函数是使用 pagemethods 从 javascript 调用的,并且需要共享,因此我无法检查该函数的开头是否已选中复选框。谢谢你的帮助。

4

3 回答 3

2

不,javascript 总是在服务器完成向客户端发送响应后在客户端上运行。

您必须更改您的 javascript 以针对生成的 html 运行。

于 2012-08-28T14:25:03.033 回答
0

你的问题的答案是否定的。

但是,如果我了解您要执行的操作,则您希望根据服务器的值修改控件。为什么不直接发送 AJAX 请求来获取该值,然后相应地更新控件。

话虽如此,您的应用程序的架构似乎有点混乱,所以如果您只需要一个创可贴,也许您可​​以生成该服务器值,将其呈现在 id 或隐藏的输入元素中,然后读取该值用你的 JS。

于 2012-08-28T15:01:27.820 回答
0

如果您只是使用它从父窗口获取值,则可以使用我以前使用过的一些解决方法。从您的父窗口中,您可以设置 iframe 的源并在其上附加一个查询字符串,该字符串将具有您的价值。然后从 iframe 中的页面,您可以检查查询字符串以获取值,然后相应地检查您的复选框。

在加载 pr prerender 中,根据您设置所需变量的时间,您可以在主页上放置类似iframeWhatever.Attributes.Add("src", "../filepath/page.aspx?ValueNeeded=" + ValueNeeded.ToString)

我很确定这将能够完成您当前尝试使用 javascript 完成的工作。

于 2012-08-28T15:13:31.570 回答