我遇到了问题:
我有100%动态网站,这意味着我在首页上只有一个更新面板。 所有内容都通过后面的代码动态添加到default.aspx,不同的页面是Web用户控件。
当我想打开2个窗口(通过ajax控件工具包可拖动面板)时出现问题。
我想通过javascript定位这些面板,但定位javascript不会运行。
请注意,我仍然在网站的第一页,浏览器中没有回溯历史记录;当我在webbrowser中“查看源代码”时,我看到了登录页面的代码,这是网站打开时首先出现的代码。
我不希望任何回发导致页面历史记录,如何执行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;";
}
}
答案 0 :(得分:0)
我们可以提供一些示例代码吗?
这种编码风格不会更简单,更适合使用通用处理程序,而不是在页面后面添加代码中的所有内容吗?我相信这也会清除一些开销。
尝试使用Chrome的开发者工具或Firebug for Firefox等扩展程序来查看来源。这样您就可以查看和操作DOM。您还有其他有用的工具,例如JavaScript控制台,它将记录任何错误。
答案 1 :(得分:0)
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>");
答案 2 :(得分:0)
使用FireFox的FireBug插件可以解决您的“无历史记录”问题,该插件会向您显示实时源代码。
这比浏览器的右键点击&gt;具有很高的优势。查看源代码选项,我相信它会从服务器中检索新代码。