שלח תשובה

זירת השאלות

393
צפיות
19
תשובות

iframe

,‏ 21 ביולי, 2008

שלום,

אני מציג למשתמש iframe כשהוא לוחץ על כפתור מסויים, אני רוצה להעלים אותו כאשר המשתמש לוחץ על מקום אחר בדף..
איך ניתן להפעיל פונ’ על iframe כאשר עוזבים אותו? אין אפשרות עם onblur.

תודה

תגיות:

19 תשובות

  1. למה לא onclick?
    תן ל-body של הדף הראשי אירוע onclick שיקרא לפונקציה תעלים את הפריים…


    אלי ענתבי
    entry interactive
    http://www.entry.co.il

  2. rjnhojbht הגיב:

    בגלל ש
    onclick על כל העמוד לא נותן לי לפתוח את הiframe בלחיצה על אותו כפתור..
    זה מתנגש, מצד אחד קליק על כל העמוד שיסגור את החלון ומצד שני קליק על אותו כפתור שיפתח אותו, לפי מה שניסיתי – הקליק על כל העמוד מנצח.
    ניסיתי לעשות תנאי "אם החלון פתוח – רק אז תסגור אותו" – משום מה הוא לא עובד..

  3. אפשר ליצור את האירוע אחרי הקליק הראשון
    לגבי "אם החלון פתוח – רק אז תסגור אותו" – תראה איך אתה מנסה וננסה לעזור למה זה לא עובד


    אלי ענתבי
    entry interactive
    http://www.entry.co.il

  4. rjnhojbht הגיב:

    כך:

    if (document.getElementById(‘colorpalette’).style.visibility=="visible")
        document.getElementById(‘colorpalette’).style.display=’none’;

  5. 2 דברים
    1. לא ברור למה אתה בודק על visibility ולא עם display

    2. האם נתת לו את ערך visibility:visible? זה שהוא מוצג זה לא אומר שהערך הזה מוגדר ולכן התנאי לא יתקיים…

    רצוי שתעבוד רק עם display עם הערכים none/block


    אלי ענתבי
    entry interactive
    http://www.entry.co.il

  6. rjnhojbht הגיב:

    שיניתי ועדיין לא עובד
    טוב, שיניתי לdisplay בלבד ועדיין זה לא עובד..(לא מציג את הiframe כאשר קיימת הפונ’ על כל העמוד).

    כך נראית הפונ’ של התצוגה:

    document.getElementById("colorpalette").style.display="block";

  7. rjnhojbht הגיב:

    אגב,
    visibility מציג בFF במקום שצריך, לעומת display שמראה אותו בצד.
    כך אני מגדיר את המיקום:

    document.getElementById("colorpalette").style.top=event.y;
        document.getElementById("colorpalette").style.left=event.x;

  8. טוב, קשה לראות את התמונה בכללותה
    בלי לראות את כל הקוד הרלוונטי, קריא הפונקציה של התצוגה, התג עליו אתה מבצע את אירוע, וה-iframe עצמו.


    אלי ענתבי
    entry interactive
    http://www.entry.co.il

  9. rjnhojbht הגיב:

    זה הקוד
    פונ’ התצוגה:

    function show()    {
        // document.getElementById("colorpalette").style.visibility="visible";
        document.getElementById("colorpalette").style.display="block";
        document.getElementById("colorpalette").style.top=event.y;
        document.getElementById("colorpalette").style.left=event.x;
    }

    התג שעליו מתבצע האירוע:

    <td onclick="show();" onMouseOver="mover(this)" onmouseout="outr(this)"><img src="images/textcolor.gif" title="בחר צבע"></td>

    וה-iframe עצמו:

    <iframe width="160" height="110" id="colorpalette" src="palcolor.html" frameborder="0" style="display:none; position: absolute;"></iframe>

    מקווה שזה מספיק..

    תודה!

  10. אז איפה הבעיה כרגע
    בתצוגה או במיקום?

    איבדתי אותך


    אלי ענתבי
    entry interactive
    http://www.entry.co.il

  11. rjnhojbht הגיב:

    ככה:
    1. אני רוצה שבלחיצה על מקום אחר בדף, ייסגר הiframe..
    ניסיתי להפעיל את הפונ’ באירוע של לחיצה על העמוד עם תנאי "חוץ מלחיצה על הכפתור שמראה את הiframe", אך זה לא עובד משום מה..
    2. אמרת שכדאי להשתמש בdisplay בלבד, אך בFF הוא לא מופיע במיקום הרצוי.

    מקווה שהסברתי את עצמי כמו שצריך.

  12. יש לי רעיון
    תעשה כמו כאן בוובמאסטר, כשנפתח הפופאפ של כניסה למערכת – נפתח מאחריו שיכבה חצי שקופה. אתה תוכל לעשות אותה שקופה לחלוטין, וגם להגדיר אליה את האירוע onclick של הסגירה של הפריים שלך


    אלי ענתבי
    entry interactive
    http://www.entry.co.il

  13. rjnhojbht הגיב:

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

  14. "להעתיק" לא, ללמוד ולישם כן


    אלי ענתבי
    entry interactive
    http://www.entry.co.il

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

    אפשרות אחרת, קצת יותר מסבכת
    להקשיב לאירוע הלחיצה הכללי (על ה-document) וכשהוא קורה לבדוק אם האלמנט שנלחץ הוא ה-IFrame אם לא אז לסגור אותו.

    הטכניקה שהשפוי הציע (מיסוך כמו ב-ThickBox), תגרום לכך שאלמנט המיסוך לא יאפשר למשתמש ללחוץ באמת על דברים אחרים וזה יבלבל אותו.

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

    event.target == myIFrame
    event.target מחזיר לך את האלמנט שנלחץ (ב-IE זה event.srcElement).

  17. rjnhojbht הגיב:

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

    תודה

שלח תשובה

חדש! אחסון אתרים של וובמאסטר

שירות אחסון אתרים
המקצועי של וובמאסטר!

מומחים באירוח אתרי
WordPress, Joomla, Drupal

  • שרתי לינוקס עם CloudLinux, LiteSpeed
  • 1GB דיסק SSD, 10GB תעבורה חודשית
  • ממשק ניהול cPanel, תעודת SSL חינם

עכשיו במחיר היכרות:
רק 420 ש"ח לשנה!