Tôi đang viết một phần mở rộng cần phải biết ai chịu trách nhiệm khi yêu cầu mạng được thực hiện. Initiator từ Network Panel là chính xác những gì tôi muốn. Nhưng tôi không thể lấy nó bằng cách sử dụng API devtools.network hoặc devtools.panels. Có phải vì họ chỉ đơn giản là không tiết lộ thông tin đó hoặc tôi đang thiếu một cái gì đó?Cách truy xuất Trình khởi tạo yêu cầu khi mở rộng Chrome DevTool?
Trả lời
Bạn chính xác trong đó người khởi xướng không được tiếp xúc thông qua API tiện ích mở rộng của devtools - hiện tại, thuộc tính tài nguyên mà API hiển thị được giới hạn trong đặc tả HAR, không bao gồm trình khởi tạo. Bạn có thể sử dụng giao thức DevTools thô (https://developers.google.com/chrome-developer-tools/docs/debugger-protocol) để nhận tất cả dữ liệu có sẵn cho giao diện người dùng DevTools. Lưu ý rằng nó cũng được mở rộng cho các phần mở rộng của Chrome (http://developer.chrome.com/extensions/debugger.html), nhưng bạn không thể sử dụng nó khi đầu cuối DevTools được mở ra, vì vậy bạn sẽ không thể truy cập nó trong phần mở rộng DevTools.
Tùy thuộc vào những gì bạn đang cố gắng thực hiện, API thời gian thử nghiệm có thể được sử dụng (thử nghiệm này cho biết cách thực hiện: https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/LayoutTests/inspector/extensions/extensions-events.html&q=webInspector.timeline&sq=package:chromium&type=cs&l=148). Không giống như người khởi tạo trong mạng, nó sẽ không hiển thị cho bạn vị trí trong tài liệu gây ra tài nguyên được giới thiệu tĩnh để tải, nhưng nó sẽ cung cấp cho bạn dấu vết ngăn xếp cho XHR và tài nguyên được thêm động vào tài liệu.
Điều này có thể đã thay đổi kể từ khi câu trả lời ban đầu nhưng để tham khảo sau này có thể thông qua các debugger extension API nghe network events
Ví dụ (trong vòng một phần mở rộng)
var tabId = parseInt(window.location.search.substring(1));
window.addEventListener("load", function() {
chrome.debugger.sendCommand({tabId:tabId}, "Network.enable");
chrome.debugger.onEvent.addListener(onEvent);
});
window.addEventListener("unload", function() {
chrome.debugger.detach({tabId:tabId});
});
var requests = {};
function onEvent(debuggeeId, message, params) {
if (tabId != debuggeeId.tabId)
return;
if (message == "Network.requestWillBeSent") {
console.log(params.initiator);
}
}
Mã này đã được sửa đổi từ HTTP extension example
- 1. Tiện ích mở rộng của Chrome + Devise + Rails App - Đặt yêu cầu được xác thực từ tiện ích mở rộng?
- 2. Nội dung yêu cầu HTTP chặn từ tiện ích mở rộng chrome
- 3. Chrome/Firefox: truy cập nguồn mở rộng
- 4. Làm cách nào để tải tiện ích mở rộng của tôi khi khởi động chrome?
- 5. Tiện ích mở rộng của Chrome: Cách tạo?
- 6. jQuery.ajax() gửi yêu cầu POST dưới dạng GET trong phần mở rộng của Chrome
- 7. Tiện ích mở rộng của Chrome oAuth Yêu cầu Trang Chuyển hướng Không Đang tải
- 8. Gửi yêu cầu XHR từ tiện ích mở rộng của Chrome bằng cookie
- 9. Tiện ích mở rộng của Google Chrome - Truy cập DOM
- 10. Cách tạo tiện ích mở rộng chrome như Google Hangouts
- 11. Tiện ích mở rộng của Chrome: Cách chuyển hướng đến trang HTML tùy chỉnh theo yêu cầu web cụ thể?
- 12. Android Bluetooth Yêu cầu mở rộng phản hồi
- 13. Xóa phần mở rộng .xml khỏi yêu cầu ActiveResource
- 14. Yêu cầu Android AsyncTaskLoader truy xuất thêm dữ liệu
- 15. Yêu cầu khởi tạo hạt đậu mùa xuân
- 16. Tôi làm cách nào để khởi chạy Chrome bằng tiện ích mở rộng được giải nén?
- 17. Yêu cầu chặn trong Chrome
- 18. cookie Xóa chrome mở rộng
- 19. Tính năng Mở rộng của Chrome bị hủy mỗi lần
- 20. Truy xuất tab nào đang mở trong Chrome?
- 21. Làm thế nào để lập trình mở rộng chrome mở popup.html
- 22. Chrome gửi yêu cầu nhiều lần
- 23. Tiện ích mở rộng của Chrome: đóng trang nền sau khi đóng Chrome
- 24. menu Context trong phần mở rộng Chrome
- 25. Tiện ích mở rộng được cài đặt trên trình duyệt chrome bị thiếu khi phiên bản trình duyệt Chrome được mở bằng Selenium chromDriver
- 26. Yêu cầu PATCH trên Chrome Cross-Domain không hoạt động
- 27. Truy xuất giới hạn yêu cầu Api Salesforce hàng ngày
- 28. Cách hủy bỏ webRequest một cách im lặng trong tiện ích mở rộng chrome
- 29. Cách bảo vệ tiện ích mở rộng chrome
- 30. Yêu cầu giám sát trong Chrome
làm cách nào để bạn chạy mã này? – James