Chrome Dev Tools: จะติดตามเครือข่ายสำหรับลิงก์ที่เปิดแท็บใหม่ได้อย่างไร


236

ฉันต้องการติดตามกิจกรรมเครือข่ายที่เกิดขึ้นเมื่อฉันคลิกที่ลิงก์ ปัญหาคือลิงก์เปิดแท็บใหม่และเห็นได้ชัดว่าเครื่องมือ Dev ทำงานได้ตามแท็บที่เปิดอยู่ "เก็บรักษาบันทึกการนำทาง" ไม่ช่วย

วิธีแก้ปัญหาปัจจุบันของฉันคือย้ายไปที่ FireFox และ HttpFox ซึ่งไม่มีปัญหานี้ ฉันสงสัยว่านักพัฒนาซอฟต์แวร์ทั้งหมดของ Chrome จะจัดการกับสิ่งนี้ได้อย่างไรมันฟังดูค่อนข้างธรรมดา (แน่นอนฉันได้ค้นหาคำตอบแล้วไม่พบว่ามีประโยชน์อะไร)


เนื่องจากคำถามนี้ได้รับความสนใจค่อนข้างมากฉันจึงเริ่มสงสัยว่าฉันจะสามารถหาทางออกที่ดีกว่าได้ไหม การทำลิงก์ทั้งหมดให้เปิดในแท็บเดียวกันจะเป็นการหลอกลวงหรือไม่
Konrad Dzwinel

@ KonradDzwinel นี่เป็นงานครั้งเดียวสำหรับฉันและฉันย้ายไปดังนั้นฉันไม่สามารถบอกคุณได้ หากคุณสนใจที่จะลองและเขียนคำตอบฉันยินดีที่จะยอมรับมัน
davka

1
หากคุณต้องการสิ่งนี้เป็นคุณสมบัติโปรด
อย่า

คำตอบ:


220

ชำระเงินchrome://net-internals/#events(หรือchrome://net-exportChrome รุ่นล่าสุด) สำหรับภาพรวมโดยละเอียดของกิจกรรมเครือข่ายทั้งหมดที่เกิดขึ้นในเบราว์เซอร์ของคุณ


วิธีแก้ไขที่เป็นไปได้อื่น ๆ ขึ้นอยู่กับปัญหาเฉพาะของคุณอาจเป็นการเปิดใช้งาน 'เก็บบันทึก' ในแท็บ 'เครือข่าย':

DevTools> เครือข่าย> เก็บบันทึก

และบังคับให้ลิงก์ทั้งหมดเปิดในแท็บเดียวกันโดยเรียกใช้โค้ดต่อไปนี้ในคอนโซล:

[].forEach.call(document.querySelectorAll('a'),
    function(link){
        if(link.attributes.target) {
            link.attributes.target.value = '_self';
        }
    });

window.open = function(url) {
    location.href = url;
};

13
ขอบคุณนี้จะเย็น แต่ฉันต้องการรายการเป็นเครื่องมือในการพัฒนาซอฟต์แวร์ (คำขอและการตอบสนองที่มีส่วนหัวทั้งหมด) เพียงสำหรับแท็บอื่น
davka

สิ่งนี้น่าสนใจมากโดยเฉพาะถ้าคุณโฆษณาตัวกรองtype:URL_REQUESTแต่ดูเหมือนจะไม่มีข้อมูลเดียวกับแท็บเครือข่าย ตัวอย่างเช่นดูเหมือนว่าจะตัดข้อมูลคุกกี้สำหรับคำขอและการตอบกลับ
Patrick M

3
document.querySelectorAll('a,form')ก็จะส่งผลกระทบต่อแบบฟอร์ม
jgb

1
ฉันหวังว่าฉันจะลงคะแนนได้สองครั้ง ฉันสร้างสคริปต์เนื้อหาสำหรับโครเมี่ยมที่ทำสิ่งนี้บนฮอตคีย์และมันช่วยประหยัดเวลาในชีวิตของฉันได้อย่างแท้จริง
polkovnikov.ph

1
Chrome แสดง"ตัวแสดงเหตุการณ์ net-internals และฟังก์ชั่นที่เกี่ยวข้องถูกลบแล้วโปรดใช้ chrome: // net-export เพื่อบันทึก netlogs และ catapult ภายนอก netlog_viewer เพื่อดู" แต่ chrome: // net-export นั้นยอดเยี่ยมมาก
Jordan

109

คำขอคุณลักษณะที่กล่าวถึงในการแสดงความคิดเห็นโดย phsource ได้รับการดำเนินการ

ในเวอร์ชันล่าสุด (เริ่มต้นด้วย Chrome 50) คุณสามารถไปที่เมนูการตั้งค่าเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ (เปิดเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์จากนั้นใช้เมนู 3 จุดหรือกดF1) แล้วทำเครื่องหมายในช่องที่ระบุว่า "DevTools เปิดป๊อปอัปอัตโนมัติ


13
ใช้งานได้ดียกเว้นว่ามันค่อนข้างยุ่งยากในการเปิดใช้งาน "เก็บบันทึก" ทันทีที่เปิดหน้าต่าง
Erwin Mayer

คุณควรอัปเดตคำตอบของคุณเนื่องจากรุ่นที่เสถียรของ chrome อยู่ในขณะนี้ 55
Lulu

5
ถอนหายใจหน้าต่างใหม่ไม่ได้เปิดใช้งาน <เก็บบันทึก> เกิดอะไรขึ้นกับวิศวกร Chrome
Pacerier

ใช้สิ่งนี้ร่วมกับstackoverflow.com/a/29029881/145400 (คำตอบที่ดีสำหรับ "Chrome Dev Tools เป็นไปได้ไหมที่จะเปิดต่อไปแม้หลังจากปิดหน้าต่างแล้ว")!
ดร. Jan-Philip Gehrcke

ใช้เมนู 3 จุดหรือกด> หน้าการตั้งค่า> DevTools> "DevTools แบบเปิดอัตโนมัติสำหรับป๊อปอัป"
ฮอลลี่

27

ใน Chrome 61.0.3163.100 ตอนนี้คุณมีตัวเลือกดังต่อไปนี้ เข้าถึงได้โดยไปที่การตั้งค่าเครื่องมือ Chrome Dev มันอยู่ที่ด้านล่าง

การตั้งค่าตัวตรวจสอบเว็บ


3
น่าเสียดายที่นี่ไม่ได้เปิดใช้งาน "เก็บบันทึก" ในหน้าต่างที่เพิ่งเปิดใหม่ดังนั้นหากคุณได้รับหน้าต่างใหม่และเปลี่ยนเส้นทางในหน้าต่างดังกล่าวบันทึกเครือข่ายจะถูกล้างและเริ่มต้นหลังจากการเปลี่ยนเส้นทาง
janh

4
การตั้งค่าสำหรับผู้ที่ไม่ต้องการคลิกที่ลิงค์เพื่อดูภาพคือ "DevTools เปิดอัตโนมัติสำหรับป๊อปอัป" ภายใต้หัวข้อ "DevTools" การตั้งค่าอื่น ๆ ที่มี: "เก็บบันทึก" ภายใต้ "เครือข่าย"; "เก็บบันทึกไว้ในการนำทาง" ภายใต้ "คอนโซล"
hlongmore

2
สิ่งนี้ใช้งานได้สำหรับฉัน (Chrome 76) และกำลังเปิดใช้งาน "บันทึกการเก็บรักษา" เมื่อเปิดใช้เครื่องมือนักพัฒนาของป๊อปอัปของ windows ป๊อปอัพฉันสามารถเปิดใช้งานการตั้งค่าบันทึกการรักษาไว้ได้หรือไม่
วินซ์ Bowdren

11
  • เพิ่ม / อัปเดตลิงก์ไปที่ target="_self"
  • ทำเครื่องหมาย "เก็บบันทึกเมื่อนำทาง" ในแท็บเครือข่าย
  • คลิกที่ลิงค์และบันทึกคำขอของคุณ

10

คุณสามารถทำได้ด้วยวิธีนี้:

  1. set target = "any_window_name" บนลิงก์ที่ต้องการ
  2. คลิกลิงก์นั้นหนึ่งครั้งเพื่อเปิดในแท็บใหม่
  3. ในแท็บที่เปิดอยู่เครื่องมือสำหรับนักพัฒนาเปิด
  4. กลับไปที่หน้าแรกแล้วกดลิงค์นั้นอีกครั้ง

    ผลลัพธ์จะถูกโหลดในหน้าต่างที่เตรียมไว้แล้วโดยเปิดเครื่องมือสำหรับนักพัฒนา

    คุณสามารถเปิดใช้งานตัวเลือก "เก็บบันทึก" ในเครื่องมือ dev (ดูในคำตอบที่ยอดเยี่ยมของ Konrad Dzwinel) เพื่อรับปริมาณการเปลี่ยนเส้นทางบนลิงก์นั้น

    หมายเหตุ : คนส่วนใหญ่คุ้นเคยกับลิงก์เป้าหมาย∈ {_self, _blank, _parent, _top} แต่จริงๆแล้วสามารถตั้งชื่อใด ๆ ได้สิ่งนี้จะเปิดหน้าต่างใหม่ที่มีชื่อนั้นและคลิกใด ๆ ที่ตามมาบนลิงก์แบบฟอร์มหรือหน้าต่างเปิดด้วยค่าเป้าหมายเดียวกันจะเปิดในหน้าต่างเดียวกัน อ่านเพิ่มเติม - mdn: window.open , mdn: <a> แท็ก


ขอบคุณมากสำหรับเคล็ดลับนี้ฉันจะไม่คิดเลย สิ่งที่ฉันต้องการ ทำงานได้ดีในหลาย ๆ หน้าต่าง (ใน Chrome อย่างน้อย) หากใครก็ตามที่อ่านข้อความนี้ต้องการดูว่าทั้งสองหน้าทำงานอย่างไรในเวลาเดียวกัน
Mark Ormesher

3

ในกรณีที่ลิงค์เปิดไม่เปลี่ยนเส้นทางคุณสามารถเปิดแท็บเครือข่ายในแท็บใหม่จากนั้นรีเฟรชแท็บ



0

* คำเตือน: โพสต์โดยผู้พัฒนาของ HttpWatch *

HttpWatchบน Windows สามารถบันทึกทราฟฟิกเครือข่ายที่สร้างขึ้นเมื่อเปิดแท็บหรือหน้าต่าง Chrome ใหม่โดยเปิดใช้งานการบันทึกอัตโนมัติในเครื่องมือ -> ตัวเลือก -> การบันทึก ในหน้าต่างใหม่คลิกที่ไอคอน HttpWatch เพื่อดูการติดตามเครือข่าย

รุ่นฟรีจะให้ข้อมูลพื้นฐานเช่น URL รหัสสถานะและเวลาที่ผ่านไปสำหรับแต่ละคำขอ

* คำเตือน: โพสต์โดยผู้พัฒนาของ HttpWatch *

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.