# ใครเก่ง Jquery ช่วยผมด้วยครับ เกี่ยวกับการแสดงผล Lightbox ใน iFrame มี Bug นิดนึงอยากให้ช่วยแก้คับ

เริ่มโดย น้องบิ้ว, 23 กันยายน 2012, 01:56:14

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

น้องบิ้ว

สวัสดีคับ พอดีนั่งงมโค้ดส่วนนี้อยู่คับแต่แก้ไม่ได้สักที ผมแก้โค้ดไม่เป็นใช้เป็นอย่างเดียว TT รบกวนเพื่อนๆเก่งช่วยผมทีคับ ทางคุณอาจเป็นเรื่องกล้วยๆก็ได้ ขอบคุณล่วงหน้าคับ

คือผมโหลด Jquery lightbox ของ Fancybox มาใช้งาน  http://fancyapps.com/fancybox/  กับเว็บของผมด้านล่าง

1. ลองเข้าดูครับ ผมสร้างหน้า frame.html ขึ้นมาแล้วทำลิงค์ lightbox ไว้ http://buildstory.com/frame/stream/frame.html  เข้าไปแล้วกดที่ link เปิดเว็บ WIKI พอกดมันจะ popup lightbox แสดงผลถูกต้องเหมือนรูปด้านล่าง


2. ผมดึงหน้า frame.html มาไว้ในหน้า index.html ลองเข้าไปดูในหน้านี้คับ http://buildstory.com/frame/index.html   แล้วพอคลิกตรง Link wiki มันดันไปแสดง lightbox ใน iframe นะคับ ตามภาพล่าง  ผมอยากให้มันแสดงผล แบบจอใหญ่ปกตินะคับ มีวิธีแก้ไขไหมคับ ผมจำเป็นต้องดึงมาเป็น iframe นะคับ


มีใครช่วยได้บ้างคับ เป็นพระคุณมากๆเลยคับ ขอบคุณล่วงหน้าคับ  :wanwan031:

Positron

เกิดจาก มันโชว์ได้สูงสุดตาม iframe ที่ใช้อยู่ครับ

เพราะเนื้อหาใน iframe ไม่สามารถแสดงล้นออกมานอก iframe ได้

น้องบิ้ว

อ้างถึงจาก: Positron ใน 23 กันยายน 2012, 02:02:14
เกิดจาก มันโชว์ได้สูงสุดตาม iframe ที่ใช้อยู่ครับ

เพราะเนื้อหาใน iframe ไม่สามารถแสดงล้นออกมานอก iframe ได้

ขอบคุณคับ แต่คืออยากให้มันแสดงออกมานอก iframe มันมีวิธีไหมครับบผม  :wanwan031:

Positron

ถ้าจะทำจริงๆ ผมพอจะคิดได้วิธีเดียวคือ เอา lightbox มาไว้ข้างนอก iframe

แล้วสั่งงานใน iframe เมื่อมีการคลิกให้มาสั่งเปิด lightbox ผ่าน opener(หน้าเว็บปรกติ)

แต่ขั้นตอนมันจะยุ่งยากนิดนึงอะครับ ต้องเขียน js เป็นนิดหน่อย

น้องบิ้ว

อ้างถึงจาก: Positron ใน 23 กันยายน 2012, 02:11:39
ถ้าจะทำจริงๆ ผมพอจะคิดได้วิธีเดียวคือ เอา lightbox มาไว้ข้างนอก iframe

แล้วสั่งงานใน iframe เมื่อมีการคลิกให้มาสั่งเปิด lightbox ผ่าน opener(หน้าเว็บปรกติ)

แต่ขั้นตอนมันจะยุ่งยากนิดนึงอะครับ ต้องเขียน js เป็นนิดหน่อย

TT ปัญหาคือผมเขียน code ไรไม่เป็นเลยนิสิคับ อาศัยพอแค่โหลดเค้ามาแล้วเอามา ใส่ของตัวเองได้บ้าง แต่เขียนแก้ไขนี่ทำไม่ได้เลยคับ ทีพี่บอกมาพอเข้าใจไอเดียคับ สั่งงานจากใน iframe
พี่พอจะรู้ keyword ในการค้นหาใน google ไหมคับ คือกรณีนี้ผมไม่รู้ว่าจะ search แก้ปัญหานี้ยังไงจิงๆลองหาแล้ว แต่ใส่ keyword แค่ how iframe lightbox แต่ไม่เจอ..  ถ้าปัญหานี้มีพวกฝรั่งเคยแก้ได้น่าจะมีโค้ดอยู่ ผมยังพอไปเอาโค้ดมานั่งงมๆใส่ในของผมได้นะคับ ไม่รู้จะรบกวนไปรึป่าว ขอบคุณล่วงหน้ามากๆเลยคับผม  :wanwan017:

Positron

ถ้า keyword หลักๆน่าจะเป็น opener อะครับเพราะเป้นชื่อฟังก์ชั่นใน js
มันใช้อ้างอิงไปยังหน้าเว็บที่เปิดมันขึ้นมา(window.open) และ iframe ได้

ถ้าเดาไม่ผิด น่าจะใช้ window.opener.ชื่อฟังชั่น('url'); ในไฟล์ iframe ได้เลย

แล้วมาเขียนฟังชั่นข้างนอก(ในหน้าเว็บปรกติ) ซึ่งในฟังก์ชั่นนั้น ก็เรียกใช้งาน lightbox อีกที

kungbest

เป็นผมจะทำแบบนี้คับ สร้างตัวแปรมา 1 ตัว เวลาจะเรียกใช้แบบ iframe ก็โยนค่านี้ลงไปใน frame.html (แต่มันต้องเป็น php นะคับ)
ถ้าได้รับค่าก็จะไม่แสดง class สำหรับ fancybox ถ้าไม่ได้รับค่าก็แสดง class ปกติ

น้องบิ้ว

อ้างถึงจาก: Positron ใน 23 กันยายน 2012, 02:38:12
ถ้า keyword หลักๆน่าจะเป็น opener อะครับเพราะเป้นชื่อฟังก์ชั่นใน js
มันใช้อ้างอิงไปยังหน้าเว็บที่เปิดมันขึ้นมา(window.open) และ iframe ได้

ถ้าเดาไม่ผิด น่าจะใช้ window.opener.ชื่อฟังชั่น('url'); ในไฟล์ iframe ได้เลย

แล้วมาเขียนฟังชั่นข้างนอก(ในหน้าเว็บปรกติ) ซึ่งในฟังก์ชั่นนั้น ก็เรียกใช้งาน lightbox อีกที

ขอบคุณมากคับผม อาจจะไม่ค่อยเข้าใจหุหุ  ผมค้นหาได้ข้อมูลนี่มา http://s3.envato.com/files/1099520/index.html  เลื่อนไปล่างสุดข้อ 9 อะคับ คิดว่าน่าจะใช้ แต่ลองเอามาใช้แล้วมันไม่ทันงาน ไม่รู้ว่าผมแก้อะไรพลาดรึป่าว  :wanwan031:

น้องบิ้ว

อ้างถึงจาก: kungbest ใน 23 กันยายน 2012, 02:45:21
เป็นผมจะทำแบบนี้คับ สร้างตัวแปรมา 1 ตัว เวลาจะเรียกใช้แบบ iframe ก็โยนค่านี้ลงไปใน frame.html (แต่มันต้องเป็น php นะคับ)
ถ้าได้รับค่าก็จะไม่แสดง class สำหรับ fancybox ถ้าไม่ได้รับค่าก็แสดง class ปกติ

จิงหรอคับ php ก็ได้คับ ขอให้มันทำได้ก็พอ ต้องทำไงมั้งอะคับ สะดวกรบกวนได้ไหมคับ ขอบคุณล่วงหน้าคับ  :wanwan017:

ossytong


kungbest

อ้างถึงจาก: น้องบิ้ว ใน 23 กันยายน 2012, 02:54:41
อ้างถึงจาก: kungbest ใน 23 กันยายน 2012, 02:45:21
เป็นผมจะทำแบบนี้คับ สร้างตัวแปรมา 1 ตัว เวลาจะเรียกใช้แบบ iframe ก็โยนค่านี้ลงไปใน frame.html (แต่มันต้องเป็น php นะคับ)
ถ้าได้รับค่าก็จะไม่แสดง class สำหรับ fancybox ถ้าไม่ได้รับค่าก็แสดง class ปกติ

จิงหรอคับ php ก็ได้คับ ขอให้มันทำได้ก็พอ ต้องทำไงมั้งอะคับ สะดวกรบกวนได้ไหมคับ ขอบคุณล่วงหน้าคับ  :wanwan017:
pm มาเลยคับ