Page.RegisterStartupScript + HTC

orenphp

New member
Page.RegisterStartupScript + HTC

הצמדתי קובץ HTC לתג body בעל id=PageBody בעמוד שיצרתי (page.aspx). בקוד השרת בעמוד (page.aspx.cs), כתבתי את הקוד הבא:
Page_Load(...) { Page.RegisterStartupScript("OpenWindow", "<script language='javascript'>PageBody.OpenMyWindow('xxx');</script>"); }​
הבעיה היא כזו: משום מה, PageBody הוא undefined למרות שאני פותח את הפלט (viewsource) אני רואה שהכל "נפלט" כמו שצריך. אם אני אקח את הקוד של הJS ואשים אותו באופן יזום בpage.aspx - הכל עובד מעולה. ניסיתי לקחת את הפו' OpenMyWindow מהHTC ולשים אותו בpage.aspx + שיניתי את הקוד ככה שיפנה ישירות אל הפו' ולא דרך PageBody - כמובן שהכל עבד כמו שצריך. ניסיתי גם להשתמש בPage.RegisterClientSideScript - אותן תוצאות עגומות. לכן, אני חושב שמשום מה הוא מריץ את הקוד לפני שהוא מצמיד את הHTC אל הbody, אבל זה לא הגיוני, הרי לפי הפלט, הHTC מודבר לפני שמודפסת הבקשה לפנות אל הפו' בHTC. מישהו נתקל בבעיה?
 

orenphp

New member
טוב, כבר מצאתי פיתרון.

מה שצריך לעשות הוא לחכות שהדף יטען (להירשם לאירוע document.onreadystatechange ולבדוק מתי document.readyState=="complete"). הHTC עדיין לא מספיק להיטען ולכן עפה לי השגיאה. תודה בכל אופן.
 
למעלה