525
צפיות
צפיות
19
תשובות
תשובות
iframe
שלום,
אני מציג למשתמש iframe כשהוא לוחץ על כפתור מסויים, אני רוצה להעלים אותו כאשר המשתמש לוחץ על מקום אחר בדף..
איך ניתן להפעיל פונ' על iframe כאשר עוזבים אותו? אין אפשרות עם onblur.
תודה
שלום,
אני מציג למשתמש iframe כשהוא לוחץ על כפתור מסויים, אני רוצה להעלים אותו כאשר המשתמש לוחץ על מקום אחר בדף..
איך ניתן להפעיל פונ' על iframe כאשר עוזבים אותו? אין אפשרות עם onblur.
תודה
19 תשובות
למה לא onclick?
תן ל-body של הדף הראשי אירוע onclick שיקרא לפונקציה תעלים את הפריים…
אלי ענתבי
entry interactive
http://www.entry.co.il
בגלל ש
onclick על כל העמוד לא נותן לי לפתוח את הiframe בלחיצה על אותו כפתור..
זה מתנגש, מצד אחד קליק על כל העמוד שיסגור את החלון ומצד שני קליק על אותו כפתור שיפתח אותו, לפי מה שניסיתי – הקליק על כל העמוד מנצח.
ניסיתי לעשות תנאי "אם החלון פתוח – רק אז תסגור אותו" – משום מה הוא לא עובד..
אפשר ליצור את האירוע אחרי הקליק הראשון
לגבי "אם החלון פתוח – רק אז תסגור אותו" – תראה איך אתה מנסה וננסה לעזור למה זה לא עובד
אלי ענתבי
entry interactive
http://www.entry.co.il
כך:
if (document.getElementById('colorpalette').style.visibility=="visible")
document.getElementById('colorpalette').style.display='none';
2 דברים
1. לא ברור למה אתה בודק על visibility ולא עם display
2. האם נתת לו את ערך visibility:visible? זה שהוא מוצג זה לא אומר שהערך הזה מוגדר ולכן התנאי לא יתקיים…
רצוי שתעבוד רק עם display עם הערכים none/block
אלי ענתבי
entry interactive
http://www.entry.co.il
שיניתי ועדיין לא עובד
טוב, שיניתי לdisplay בלבד ועדיין זה לא עובד..(לא מציג את הiframe כאשר קיימת הפונ' על כל העמוד).
כך נראית הפונ' של התצוגה:
document.getElementById("colorpalette").style.display="block";
אגב,
visibility מציג בFF במקום שצריך, לעומת display שמראה אותו בצד.
כך אני מגדיר את המיקום:
document.getElementById("colorpalette").style.top=event.y;
document.getElementById("colorpalette").style.left=event.x;
טוב, קשה לראות את התמונה בכללותה
בלי לראות את כל הקוד הרלוונטי, קריא הפונקציה של התצוגה, התג עליו אתה מבצע את אירוע, וה-iframe עצמו.
אלי ענתבי
entry interactive
http://www.entry.co.il
זה הקוד
פונ' התצוגה:
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>
מקווה שזה מספיק..
תודה!
אז איפה הבעיה כרגע
בתצוגה או במיקום?
איבדתי אותך
אלי ענתבי
entry interactive
http://www.entry.co.il
ככה:
1. אני רוצה שבלחיצה על מקום אחר בדף, ייסגר הiframe..
ניסיתי להפעיל את הפונ' באירוע של לחיצה על העמוד עם תנאי "חוץ מלחיצה על הכפתור שמראה את הiframe", אך זה לא עובד משום מה..
2. אמרת שכדאי להשתמש בdisplay בלבד, אך בFF הוא לא מופיע במיקום הרצוי.
מקווה שהסברתי את עצמי כמו שצריך.
יש לי רעיון
תעשה כמו כאן בוובמאסטר, כשנפתח הפופאפ של כניסה למערכת – נפתח מאחריו שיכבה חצי שקופה. אתה תוכל לעשות אותה שקופה לחלוטין, וגם להגדיר אליה את האירוע onclick של הסגירה של הפריים שלך
אלי ענתבי
entry interactive
http://www.entry.co.il
רעיון טוב.
זה יכול גם למקד את המשתמש.
אנסה לעשות את זה מאוחר יותר, נקווה שלא יהיו בעיות.
אפשר להעתיק קצת מהקוד שלכם?
"להעתיק" לא, ללמוד ולישם כן
אלי ענתבי
entry interactive
http://www.entry.co.il
תודה
אפשרות אחרת, קצת יותר מסבכת
להקשיב לאירוע הלחיצה הכללי (על ה-document) וכשהוא קורה לבדוק אם האלמנט שנלחץ הוא ה-IFrame אם לא אז לסגור אותו.
הטכניקה שהשפוי הציע (מיסוך כמו ב-ThickBox), תגרום לכך שאלמנט המיסוך לא יאפשר למשתמש ללחוץ באמת על דברים אחרים וזה יבלבל אותו.
איך אני בודק מהו האלמנט שנלחץ?
event.target == myIFrame
event.target מחזיר לך את האלמנט שנלחץ (ב-IE זה event.srcElement).
אממ..
זכור לי במעומעם שראיתי באחד מהחיפושים שלי בפורום , קוד שמטפל בsrcElement.. נראה לי אוריקס כתב אותו.. אתה זוכר איפה זה?
חיפשתי "מהו האלמנט שנלחץ" ולא מצאתי..
תודה