เป็นไปได้หรือไม่ที่จะแก้ไข JavaScript ของหน้าเว็บจากนั้นโหลดหน้าเว็บซ้ำโดยไม่โหลดไฟล์ JavaScript ที่แก้ไขใหม่ (และทำให้สูญเสียการปรับเปลี่ยน)?
เป็นไปได้หรือไม่ที่จะแก้ไข JavaScript ของหน้าเว็บจากนั้นโหลดหน้าเว็บซ้ำโดยไม่โหลดไฟล์ JavaScript ที่แก้ไขใหม่ (และทำให้สูญเสียการปรับเปลี่ยน)?
คำตอบ:
นี่เป็นบิตของการทำงาน แต่วิธีหนึ่งที่คุณสามารถทำได้คือการเพิ่มเบรกพอยต์ที่จุดเริ่มต้นของไฟล์ javascript หรือบล็อกที่คุณต้องการจัดการ
จากนั้นเมื่อคุณโหลดใหม่ตัวดีบักจะหยุดที่จุดพักนั้นและคุณสามารถทำการเปลี่ยนแปลงใด ๆ ที่คุณต้องการไปยังแหล่งที่มาบันทึกไฟล์แล้วเรียกใช้ดีบักเกอร์ผ่านรหัสที่แก้ไข
แต่อย่างที่ทุกคนได้กล่าวไว้การโหลดซ้ำการเปลี่ยนแปลงครั้งต่อไปจะหายไป - อย่างน้อยก็ให้คุณเรียกใช้ฝั่งไคลเอ็นต์ JS ที่ปรับเปลี่ยนเล็กน้อย
var foo = 'bar'
ในสคริปต์ไม่ได้เปิดเผยfoo
ไปยังคอนโซล
ข่าวดีการแก้ไขจะมาในเดือนมีนาคม 2561 ดูลิงค์นี้: https://developers.google.com/web/updates/2018/01/devtools
"การแทนที่ในเครื่องช่วยให้คุณสามารถทำการเปลี่ยนแปลงใน DevTools และเก็บการเปลี่ยนแปลงเหล่านั้นในการโหลดหน้าก่อนหน้านี้การเปลี่ยนแปลงใด ๆ ที่คุณทำใน DevTools จะหายไปเมื่อคุณโหลดหน้าซ้ำการแทนที่ในเครื่องทำงานได้กับประเภทไฟล์ส่วนใหญ่
มันทำงานอย่างไร:
หากต้องการตั้งค่าการแทนที่ท้องถิ่น:
อัปเดต (19 มีนาคม 2018): มีการถ่ายทอดสดพร้อมคำอธิบายอย่างละเอียดที่นี่: https://developers.google.com/web/updates/2018/01/devtools#overrides
แทนที่ทรัพยากรขยายช่วยให้คุณสามารถทำตรงนั้น:
ฉันรู้ว่าไม่ใช่คำถามที่แม่นยำ (เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ Chrome) แต่ฉันใช้วิธีแก้ปัญหานี้กับความสำเร็จ: http://www.telerik.com/fiddler
(ค่อนข้างแน่ใจว่าผู้พัฒนาเว็บบางคนรู้เรื่องนี้แล้ว)
เอกสารฉบับเต็ม: http://docs.telerik.com/fiddler/KnowledgeBase/AutoResponder
PS ฉันอยากจะให้มันใช้งานใน Chrome เป็นค่าสถานะpreserve after reload
ไม่สามารถทำได้ในตอนนี้ฟอรัมและกลุ่มสนทนาที่ถูกบล็อกในเครือข่ายขององค์กร :)
ใช่เพียงเปิดแท็บ "แหล่งที่มา" ในเครื่องมือ dev และไปที่สคริปต์ที่คุณต้องการเปลี่ยน ทำการปรับเปลี่ยนโดยตรงในหน้าต่างเครื่องมือ dev จากนั้นกด ctrl + s เพื่อบันทึกสคริปต์ - รู้ว่าจะใช้ js ใหม่จนกว่าคุณจะรีเฟรชหน้าทั้งหมด