在服务器端页面加载之前有没有办法在加载时运行javascript?

时间:2012-08-28 14:22:48

标签: javascript asp.net vb.net

在我的applciation(asp.net - 使用vb作为语言后面的代码)服务器端(vb)页面加载代码首先运行,当它完成时它运行javascript onload。反正有没有先运行javascript onload?我的javascript从父窗口获取变量的值(使用iframe),并使用它来设置子窗口中的控件。页面加载处理控件集(如果父级的值是某个值,则会自动检查不同的复选框。)

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

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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

话虽如此,看起来您的应用程序的架构看起来有些混乱,所以如果您只需要一个bandaid,也许您可​​以生成该服务器值,在id或隐藏的输入元素中呈现它,然后用你的JS读取那个值。

答案 2 :(得分:0)

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

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

之类的内容。

我很确定这可以用javascript完成你目前要完成的任务。