שלח תשובה

זירת השאלות

562
צפיות
27
תשובות

בעיה עם הפנייה לעמוד

,‏ 1 בספטמבר, 2004

אני כותב ככה:


top.location.href=url ;


הקוד מגיע לשורה הזאת וזה בדוק.
הבעיה פה היא שהעמוד נטען והפעולות שהוא עושה בצד השרת מתבצעות, אבל לא רואים את העמוד הזה בלקוח. נשארים באותו העמוד שבו התבצעה ההפניה.
למה זה ככה?

תגיות:

27 תשובות

  1. Night הגיב:

    זה לא עזר..
    אבל תודה על הניסיון.
    יש למישהו עוד רעיון?

  2. ניר טייב הגיב:

    אני מבין שאתה עובד עם פריימים
    אז אתה יכול לשים במקום TOP את הערך parent וזה יגש לעמוד שמכיל את הפריים

  3. Night הגיב:

    לא אני לא עובד עם פריימים.
    מה הבעיה כאן?

  4. Night הגיב:

    עשיתי ככה:
    self.location.href=url ;
    ואין שינוי..

  5. ניר טייב הגיב:

    אתה יכול לתת לנו קישור ?
    או להעלות את הדף ?
    עדיין לא הבנתי מה לא עובד
    כי כשאני עושה location.href=url  (כאשר url זו כתובת).
    אז זה עובד כמו שצריך

  6. BuildHome הגיב:

    פתרון לבעיה
    אתה משתמש בקישור לפעולה זו והוספת בקישור את void.
    כתבתי מטה למשתמש מה פירוש האופרטור הנ"ל.
    בשל כך הפניית העמוד לא התבצעה.
    שנה זה ל-span
    <span style="cursor:Hand;" onclick="RUSure(x)">מחיקה</span>
    x = מספר רשומה.

  7. Night הגיב:

    שאלה..
    יש לי שני עמודים, באחד יש טופס שמושגר לדף השני.
    אחרי שעוברים לדף השני אפשר לחזור לדף הראשון ולשנות דברים וזה לא טוב לי..
    איך אני עושה שלא יהיה אפשר לחזור ולשנות?

  8. Night הגיב:

    תיקון קטן
    הכוונה ב"אפשר לחזור לדף הראשון" היא דרך כפתור Back.

  9. ניר טייב הגיב:

    אתה יכול לעשות
    בדיקה על history.next אם העמוד הוא עמוד שלך (או שאתה הפנית אליו) ואם כן אז לעשות location.reload לדף ובכך הנתונים ימחקו (אלא אם יש למשתמש רובוט טפסים)

  10. Night הגיב:

    רציתי לבדוק מה מחזיר בידיוק
    history.next
    אז עשיתי בדיקה.. שמתי שני עמודים אחד מוביל לשני, מהשני חזרתי לראשון וריעננתי כדי לבודק מה התוצאה.
    מה שקיבלתי היה undefined …
    איך משתמשים בזה? יש דוגמא?

  11. Night הגיב:

    ובIE זה לא עובד הא?
    אם ככה זה לא עוזר לי..
    יש רעיון אחר?

  12. ניר טייב הגיב:

    אופס
    לא שמתי לב
    בדקתי שם איך קוראים למאפיין אבל לא שמתי שזה רק לנטסקייפ

  13. ניר טייב הגיב:

    אני לא בטוח אבל נסה


    var nextL = history.forward().location.href
    alert(nextL)

  14. Night הגיב:

    שגיאה


    'history.forward().location' is null or not an object

    יש דרך אחרת? אולי בלי JS?
    אם אני ישים בדף הראשון תג מטה שאומר שהתפוגה של הדף היא עכשיו,
    והמשתמש הגיע לעמוד הזה, אז הגיע לעמוד השני, ורוצה לעשות Back.
    הוא יאלץ לבקש את העמוד שוב מהשרת, אוכל לבדוק עם ASP את העמוד שממנו הגיע הגולש?
    זה יכול להחזיר לי את העמוד השני לא?
    שווה בדיקה?

  15. Night הגיב:

    ניסיתי את הרעיון..
    וזה לא עבד..
    אז מה אתם אומרים? :-/
    אין דרך?

  16. זהר פלד הגיב:

    אתה רוצה שאי אפשר יהיה לחזור לטופס
    או שאתה רוצה שגם אם יחזרו לטופס, אי אפשר יהיה לשלוח מחדש את המידע?

    אם אתה רוצה שאי אפשר יהיה לחזור לטופס, אתה יכול פשוט לפתוח את הטופס עצמו בחלון חדש, וב onSubmit לבצע close לחלון. זה לא ימנע ממי שפתח את הטופס לפתוח טופס חדש, אבל הוא לא יוכל לחזור לטופס עם הפרטים שהוא מילא.

    אם אתה רוצה שגם אי אפשר יהיה לשלוח את הטופס מחדש לשרת, תוכל לבצע disabled על הכפתור submit ב onSubmit של הטופס.

  17. Night הגיב:

    אני רוצה..
    אני לא רוצה פופ אפים וחלונות חדשים כי זה לא "אסתטי".
    בקשר לטופס:
    א. אין לו כפתור submit. שלוחצים על לחצן רדיו הטופס משוגר.(יש ארבע לחצי רדיו וצריכים לבחור אחד)
    ב. גם אם היה כפתור והייתי עושה disable היה אפשר לחזור דרך Back.

    מה שאני רוצה זה שלא יהיה אפשר לחזור דרך Back. אבל בגלל שזה לא ממש אפשרי בלי פופ אפים, אני רוצה לעשות שאם חוזרים דרך Back זה לא יתייחס לטופס שנשלח, אכשהו.
    אני יפרט בקשר למטרת הטופס:
    זה בעצם טופס של שאלה. יש שאלה ו4 תשובות שלוחצים על תשובה אחת מועברים לדף שבודק את התשובה ואז  לדף שמראה אם התשובה נכונה או לא.
    הבעיה היא שאם המשתמש רואה שהתשובה שלא שגויה הוא יכול לזחור דרך Back ולשנות! וזה מיותר.
    איך אני יכול לעשות בעמוד הבדיקה של התשובה, שכשהמשתמש חוזר עם Back,
    בוחר תשובה אחרת ומועבר שוב לעמוד בדיקת התשובה,
    עמוד בדיקת התשובה יגלה שהוא חזר (ע"י Session דגל למשל.) ולא יתייחס למידע שהוא שלח מהטופס.

    אני מתאר לעצמי שזה קצת מסובך.. מקווה שהבנתם…
    תודה רבה לעוזרים.

  18. זהר פלד הגיב:

    אתה יכול להשתמש במשתנה
    Session, שיחזיק את המספר של התשובה שבחר המשתמש, ולבדוק פשוט בשליחת הטופס אם ה Session הזה מלא או ריק.
    אם הוא ריק, אז המשתמש עוד לא בחר תשובה, אבל אם הוא מלא, אז תשובה מסויימת כבר נבחרה, ובמקרה כזה פשוט אל תעדכן אותו.
    אם אתה רוצה גם להראות לגולש שלך שב Back הוא לא יוכל לשלוח את הטופס, אתה יכול לבדוק עוד בדף של הטופס אם ה Session הזה מלא, ואם כן, לכתוב ללקוח משהו כמו "השאלה נענתה", או אולי לכתוב את הטופס עם disabled…

  19. Night הגיב:

    תודה..
    אבל ענו לי בתפוז ואני משתמש ב location.replace..
    תודה

שלח תשובה