רענון iframe
-
בדף (שפלטפורמה של wix) ששולח פרמטרים לiframe, והiframe יש בו קוד בvue.
משום מה ככל והiframe נטען (מקבל נתונים) פעם אחת הרי הנתונים הבאים שיבואו לא יתקבלו.
אני מחפש צורה לרענן את הiframe (כדי שהוא יהיה כ'דף חלק'). בגוגל [מצאתי תוצאות על ריענון iframe לפי id].(https://www.codegrepper.com/code-examples/javascript/refresh+iframe), רק שבנד"ד אין id לiframe, רק קלאס.
יש צורה לגשת אליו ע"מ לרעננו?תודה.
-
@chagold אמר ברענון iframe:
רק שבנד"ד אין id לiframe, רק קלאס
אז תיגש לקלאס ככה
document.querySelector('.class-name').contentWindow.location.reload()
לא הבנתי את הבעיה, רק התייחסתי לנושא של גישה עם קלאס
-
@יוסף-בן-שמעון אין אפשרות גישה לcontentWindow דרך קלאס
-
@chagold אמר ברענון iframe:
@יוסף-בן-שמעון אין אפשרות גישה לcontentWindow דרך קלאס
אין שום סיבה למה שכתבת.
אין שום הבדל טכני בין גישה לאלמנט HTML דרך ID לבין גישה להנ"ל דרך קלאס.
שניהם מחזירים לך אובייקט של אלמנט HTML, שאם יש לו את התכונה contentWindow היא תהיה זמינה. -
@chagold זה כנראה חסימה של הדפדפן, אתה יכול לנסות לתת לאייפריים ID בצורה ידנית דרך כלי המפתחים, ולנסות לגשת אליו דרך הקנוסול, כנראה זה יכשל עם אותה שגיאה כמו שכתב @chv אין הבדל בצורת הגישה
אפשר אולי לרענן אייפריים ע"י החלה מחדש של ה SRC שלוdocument.querySelector('.class-name').src = document.querySelector('.class-name').src
אבל כל זה פלסטרים, יש דרכם יותר אלגנטיות לתקשר בין יישומים בדף אינטרנט, אולי תנסה להסביר יותר את הצורך שלך
-
@chagold אמר ברענון iframe:
משום מה ככל והiframe נטען (מקבל נתונים) פעם אחת הרי הנתונים הבאים שיבואו לא יתקבלו.
זה עצמו צריך ביאור. זה לא אמור להיות ככה.
בנוגע לעצם השאלה:
הנתון החשוב פה הוא שמדובר ב-WIX (ה"י...). חשוב להבין שקוד הדף שאתה כותב (לא קוד ה-iframe) רץ ב-service worker ואין לו גישה ל-DOM. הגאונים של WIX בנו מימוש משלהם ל-DOM משלהם שקיים בתוך ה-service worker וזה שולח מסרים לדף האמיתי עם הפקודות. לכן השליטה שלך מוגבלת רק למה שהם רצו להנגיש לך. בינתיים אני לא רואה דרך לרענן את הדף. בטח שיש משהו לא רשמי אבל צריך למצוא אותו.