onGetOuterHTML method
Implementation
void onGetOuterHTML(int? id, Map<String, dynamic> params) {
if (DebugFlags.enableDevToolsLogs) {
devToolsLogger.finer('[DevTools] DOM.getOuterHTML nodeId=${params['nodeId']}');
}
int? nodeId = params['nodeId'];
final ctx = dbgContext;
if (nodeId == null || ctx == null) return;
final targetId = ctx.getTargetIdByNodeId(nodeId);
Node? node;
if (targetId != null) {
node = ctx.getBindingObject(Pointer.fromAddress(targetId)) as Node?;
}
if (node is Element) {
// Generate outer HTML
String outerHTML = '<${node.tagName.toLowerCase()}';
// Add attributes
node.attributes.forEach((key, value) {
outerHTML += ' $key="$value"';
});
// Add children
if (node.hasChildren()) {
outerHTML += '>';
for (Node child in node.childNodes) {
if (child is TextNode) {
outerHTML += child.data;
} else if (child is Element) {
// Recursively get child HTML
outerHTML += '...'; // Simplified for now
}
}
outerHTML += '</${node.tagName.toLowerCase()}>';
} else {
outerHTML += '/>';
}
sendToFrontend(
id,
JSONEncodableMap({
'outerHTML': outerHTML,
}));
} else {
sendToFrontend(
id,
JSONEncodableMap({
'outerHTML': '',
}));
}
}