שינוי כתובת חלון מתוך iFrame שבתוכו

הבה נניח שיש לכם חלון ובתוכו iFrame. נניח גם שבתוך ה - iFrame ישנו קישור כלשהו שברצונכם שלחיצה עליו תגרום לשינוי כתובת חלון האב. במקרה זה אינכם יכולים להשתמש בקישור <a> רגיל בגלל שקישור רגיל ישנה את כתובת הדף שבתוך ה - iFrame ולא את תוכן הדף שבתוכו נמצא ה - iFrame.

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

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

הפונקציה שלנו בחלון האב תיראה כך:

<script type="text/javascript">
function ChangeURL(url)
{
document.location=url;
}
</script>

פונקציה זו יש למקם בחלון האב בתוך ה -< header> או מייד בהתחלת ה - <body>. הפונקציה מקבלת כתובת URL כפרמטר ומנווטת לכתובת זו. בסך הכל מדובר בפונקציה פשוטה מאוד. כעת נעבור לבניית הקישור שימוקם בדף שבתוך ה - iFrame שלנו:

קישור ובו פנייה לפונקציה הממוקמת בתוך חלון האב:

<a href="javascript:parent.ChangeURL('url.htm');">bla bla</a>

כפי שאתם יכולים לראות מדוגמת הקוד שלמעלה השתמשנו בתג <a> ופנינו לפונקציה שלנו בחלון האב באמצעות התכונה href של תג זה. הצלחנו לפנות מתוך חלון הבן לחלון האב באמצעות הוספת ה - parent (מופיע באדום בדוגמה למעלה) לפני הפונקציה שלנו.

סיכום

הצלחנו לגרום לשינוי כתובת חלון מתוך iFrame המצוי בתוכו. עשינו זאת באמצעות כתיבת פונקציה פשוטה לשינוי כתובת שאותה מיקמנו בחלון האב. פנינו לפונקציה זו באמצעות תג anchor רגיל ובו פנייה לפונקציה בחלון האב. הצלחנו לפנות לפונקציה זו באמצעות הוספת parent לפני שם הפונקציה.


 
© 2010-2013  www.Devschool.co.il | מדיניות פרטיות | תנאי שימוש