จะอ่านข้อความคอนโซลจาก background.js ในส่วนขยายของ Chrome ได้ที่ไหน


195

ฉันเพิ่งเริ่มด้วยส่วนขยายของ Google Chrome และฉันไม่สามารถเข้าสู่คอนโซลจากพื้นหลัง js ได้ เมื่อมีข้อผิดพลาดเกิดขึ้น (ตัวอย่างเช่นเนื่องจากข้อผิดพลาดทางไวยากรณ์) ฉันไม่พบข้อความแสดงข้อผิดพลาดใด ๆ

ไฟล์รายการของฉัน:

{
  "name": "My First Extension",
  "version": "1.0",
  "manifest_version": 2,
  "description": "The first extension that I made.",
  "browser_action": {
    "default_icon": "icon.png"
  },
  "background": {
    "scripts": ["background.js"]
  },
  "permissions": [
    "pageCapture",
    "tabs"
  ]
}

background.js:

alert("here");
console.log("Hello, world!")

เมื่อฉันโหลดส่วนขยายการแจ้งเตือนจะปรากฏขึ้น แต่ฉันไม่เห็นสิ่งใดที่ถูกบันทึกไว้ในคอนโซล ผมทำอะไรผิดหรือเปล่า?



โปรดเลือกข้อความหรือข้อมูลหากแถบที่ไฮไลต์อยู่บนแท็บอื่นเช่นไม่มีแท็บที่เลือกอย่างละเอียด
siluveru kiran kumar

คำตอบ:


377

คุณกำลังดูสถานที่ที่ผิด ข้อความคอนโซลที่บันทึกไว้จะไม่ปรากฏในหน้าเว็บ แต่ในหน้าพื้นหลัง (มองไม่เห็น) เมื่อต้องการดูข้อความเหล่านี้ในคอนโซลทำตามขั้นตอนเหล่านี้:

chrome://extensions/เยือน
คุณสามารถคลิกขวาที่ไอคอนส่วนขยายจากนั้นคลิก "จัดการส่วนขยาย"

  1. เปิดใช้งานโหมดผู้พัฒนา
  2. คลิกที่ลิงค์ของหน้าพื้นหลังของคุณ (ที่ "ตรวจสอบมุมมอง")
  3. คอนโซลผู้พัฒนาเปิดขึ้นสำหรับหน้านี้

UI ใหม่:

ป้อนคำอธิบายรูปภาพที่นี่ ป้อนคำอธิบายรูปภาพที่นี่

UI เก่า:

ภาพ


@ RobW ฉันไม่มีปุ่มสามเหลี่ยมเพื่อขยายส่วนขยายและไม่เห็นมุมมองที่ใช้งานอยู่ คำตอบนี้ไม่ได้แก้ปัญหาสำหรับการสร้าง Chrome ล่าสุดหรือฉันขาดอะไรบางอย่าง?
gwg

1
@ggundersen ฉันได้อัปเดตรูปภาพแล้ว สามเหลี่ยมถูกลบออกแล้วขั้นตอนนั้นจะเกิดขึ้นโดยอัตโนมัติเมื่อเปิดใช้งานโหมดนักพัฒนาซอฟต์แวร์
Rob W

คุณจะดีบักสคริปต์เนื้อหาอย่างไร
SuperUberDuper

1
@SuperUberDuper ผ่าน devtools ในแท็บที่สคริปต์เนื้อหาทำงานอยู่
Rob W

13

ฉันมีปัญหาเดียวกันในกรณีของฉันการบันทึกถูกตั้งค่าเป็น "ซ่อนทั้งหมด" ในแท็บคอนโซลในเครื่องมือของนักพัฒนาซอฟต์แวร์ Chrome ฉันไม่ได้ตระหนักว่านี่เป็นตัวเลือกและฉันจำไม่ได้ว่าปิดเครื่อง

สกรีนช็อตของการตั้งค่าในแท็บคอนโซลในเครื่องมือ Chrome dev


7

สำหรับผู้ติดตามที่ต้องการเห็นคอนโซลการดีบักสำหรับ "สคริปต์เนื้อหา" ของส่วนขยายโครเมี่ยมสามารถทำได้โดยการทำ "คอนโซลนักพัฒนาซอฟต์แวร์" ตามปกติจากนั้นใช้ลูกศรแบบเลื่อนลงเพื่อเลือก "สภาพแวดล้อม JavaScript" จากนั้นคุณจะสามารถเข้าถึงได้ วิธีการ ฯลฯ

ป้อนคำอธิบายรูปภาพที่นี่


5

นอกจากนี้

หากคุณต้องการดูcontent_scriptไฟล์ js (เมื่อไม่ได้ตั้งค่าคุณสมบัติ "พื้นหลัง") ในmanifest.json

"content_scripts": [{
    "matches": ["<all_urls>"],
    "js": ["popup.js"],
  }]

"browser_action": {
    "default_icon": "icon_32.png",
    "default_popup": "popup.html"
  }

จากนั้นคลิกขวาที่ไอคอนส่วนขยายและคลิกที่ตรวจสอบหน้าต่างป๊อปอัพและนักพัฒนาซอฟต์แวร์จะเปิดขึ้นโดยมีป๊อปอัปเปิด HTML ขึ้นมาคุณจะเห็นแท็บคอนโซล


9
1) สิ่งนี้ไม่ตอบคำถาม 2) สิ่งนี้ผิด สคริปต์เนื้อหาจะบันทึกข้อความลงในคอนโซลของหน้าเว็บที่ถูกแทรกเข้าไปเช่นแท็บเบราว์เซอร์จริง ฉันคิดว่าในรหัสของคุณpopup.jsถูกนำมาใช้ซ้ำในpopup.htmlและเช่นผลลัพธ์ของสำเนานั้นไปยังสถานที่ที่คุณกล่าวถึง แต่มันก็ทำให้เข้าใจผิดโดยสิ้นเชิง
Xan

2
คำตอบนี้ช่วยให้ฉันตรวจสอบบันทึกของส่วนขยายของ Chrome ที่ทำงานแบบป๊อปอัป
RashFlash

1

คล้ายกับคำตอบของ Michiel i นอกจากนี้ยังมีการกำหนดค่าคอนโซลตลก: ตัวกรองที่ฉันจำไม่ได้ว่าตั้งค่า:

ป้อนคำอธิบายรูปภาพที่นี่

หลังจากล้างตัวกรองฉันเห็นข้อความ


1

หากเราต้องการอ่านข้อความที่พิมพ์ไปยังคอนโซลจากหน้าป๊อปอัพเราสามารถคลิกที่ไอคอนส่วนขยายเพื่อเปิดหน้าป๊อปอัพจากนั้นคลิกขวาที่หน้าป๊อปอัพที่ใดก็ได้เมนูดร็อปดาวน์จะปรากฏขึ้นเราเพียงคลิกเมนู เปิดเครื่องมือสำหรับนักพัฒนา ขอให้สังเกตว่าหน้าป๊อปอัพจะต้องเปิดอยู่ หากปิด (โดย window.close ()) เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์จะถูกปิดเช่นกัน


0

ฉันมีปัญหานี้เช่นกัน ดูเหมือนว่าหน้าเว็บของฉันไม่ได้อัปเดตเป็นสคริปต์ที่บันทึกใหม่ สิ่งนี้ได้รับการแก้ไขโดยการกดCtrl+ รีเฟรช (หรือCtrl+ F5) ในเบราว์เซอร์โครม

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