• iframe, session, cookies, safari ושאר החיות – סוף לבעיה

    כידוע דפדפן ספארי חוסם cookies צד שלישי, לדוגמא, אם החלטתם ליישם אייפריים ובתוכו תציגו דף צד שלישי עם תוכן כלשהו שמסתמך על מנגנון הsession של python או php – אתם בבעיה, מכיוון שההגדרה ברירת מחדל, הסאפרי היא לחסום את העוגיות, אלא אם כן המשתמש הגיע לדף דרך קישור. התכונה הזאת משום מה סיבה לגאווה באפל, אך עם ריבוי האייפדים, אייפונים, מקים ושאר מוצרי אפל בין מבקרי האתרים, התמיכה בsafari הופכת להיות סוג של חובה.

    הפתרון מסתבר כמאוד פשוט, בדומה לבעיות “רגילות”, ניתן לפתור הכל בשיחה קצרה, במקרה הזה צריך להשתמש ב.postMessage. דפדפנים של היום תומכים באפשרות לשיח בין החלונות, אנחנו ניצור שיח בין החלונות ובמקרה הזה, החלון יהיה האייפריים וכל מה שנעשה – נבקש קוקיז 🙂

     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <meta http-equiv="pragma" content="no-cache" />
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
            <title>iframe sample</title>
        </head>
        <body>
            <iframe id="theiframe" height="640" width="480" src="https://someurl/iframe.php"></iframe>
            <script type="text/javascript">
                var uri = 'https://someurl/iframe.php';
                var params = 'hallogimmecookies';
                var iframe = document.getElementById('theiframe').contentWindow;
                iframe.postMessage(params,uri);
            </script>

        </body>
    </html>   

    תגיות: , , , ,

  • אפשר להשאיר תגובה