如何在100%动态AJAX ASP.NET网站中激发javascript

How to fire javascript in 100% dynamic AJAX ASP.NET site

本文关键字:网站 javascript NET ASP 100% 动态 AJAX      更新时间:2023-09-26

我有一个问题:

我有一个100%动态的网站,这意味着我在起始页上只有一个更新面板。所有内容都通过代码隐藏动态添加到default.aspx中,不同的页面是web用户控件。

当我想打开两个窗口(通过ajax控制工具包拖动面板)时,问题就出现了。

我想通过javascript定位这些面板,但定位javascript不运行。

请注意,我仍然在网站的第一页,浏览器中没有历史记录;当我在网络浏览器中"查看源代码"时,我会看到登录页面的代码,这是网站打开时首先出现的代码。

我不希望任何导致页面历史记录的回发,如何执行javascript来定位我的窗口

已解决

我通过将定位移到服务器端解决了这个问题,我创建了一个"窗口管理器",它可以跟踪网站中所有打开的窗口。然后,我只需将位置添加到web用户控件中的Style属性中,就可以放置位置,如下所示:

    protected void Page_Init(object sender, EventArgs e)
    {
        PartPanel.Attributes.Add("Style", Position);
    }
    public string Position
    {
        get
        {
            return "position:absolute;left:" + PosX "px;top:" + PosY + "px;";
        }
    }

我们可以有一些示例代码吗?

这种风格的编码不是更容易、更适合使用通用处理程序,而不是在页面后面添加代码中的所有内容吗?我相信,这也将清除一些间接费用。

试着使用Chrome的开发工具,或者像Firebug这样的扩展来查看源代码。通过这种方式,您可以查看和操作DOM。您还有其他有用的工具,例如JavaScript控制台,它将记录任何错误。

 public void setPage(mshtml.HTMLWindow2Class JSFile) {
        window = JSFile;
}
public void scriptPrint(){
        window.execScript("report_back('Printing complete!')", "JScript");
}

Page.RegisterStartupScript("myScript", "<script language=JavaScript>hi('" + whatever + "');</script>");

您遇到的"无历史记录"问题可以通过使用FireFox的FireBug插件来解决,该插件将向您显示实时源代码。

与浏览器的"右键单击>查看源代码"选项相比,这有很大的优势,我相信该选项可以从服务器中检索新的代码。