Update dev-tools.js
Browse files- dev-tools.js +47 -40
dev-tools.js
CHANGED
@@ -775,19 +775,28 @@ observer.observe(document.documentElement, {
|
|
775 |
`;
|
776 |
container.appendChild(ttfbCard);
|
777 |
|
778 |
-
|
779 |
loadWebVitals().then(() => {
|
780 |
if (window.webVitals) {
|
781 |
try {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
782 |
window.webVitals.getCLS(updateCLS);
|
783 |
window.webVitals.getFCP(updateFCP);
|
784 |
window.webVitals.getFID(updateFID);
|
785 |
window.webVitals.getLCP(updateLCP);
|
786 |
window.webVitals.getTTFB(updateTTFB);
|
787 |
-
}
|
|
|
788 |
console.error('Web Vitals error:', e);
|
789 |
}
|
790 |
-
|
791 |
});
|
792 |
function updateCLS(metric) {
|
793 |
vitalsData.CLS = metric.value;
|
@@ -1687,7 +1696,41 @@ loadWebVitals().then(() => {
|
|
1687 |
|
1688 |
return panel;
|
1689 |
}
|
1690 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1691 |
// Elementsパネル作成
|
1692 |
function createElementsPanel() {
|
1693 |
const panel = document.createElement('div');
|
@@ -1962,42 +2005,6 @@ loadWebVitals().then(() => {
|
|
1962 |
}
|
1963 |
}
|
1964 |
|
1965 |
-
// 要素パネル更新
|
1966 |
-
function refreshElementsPanel() {
|
1967 |
-
let tree = document.getElementById('dom-tree');
|
1968 |
-
|
1969 |
-
if (!tree) {
|
1970 |
-
const panel = document.getElementById('elements-panel');
|
1971 |
-
if (panel) {
|
1972 |
-
const container = panel.querySelector('.elements-container');
|
1973 |
-
if (container) {
|
1974 |
-
tree = document.createElement('div');
|
1975 |
-
tree.className = 'dom-tree';
|
1976 |
-
tree.id = 'dom-tree';
|
1977 |
-
container.insertBefore(tree, container.querySelector('.css-panel'));
|
1978 |
-
}
|
1979 |
-
}
|
1980 |
-
}
|
1981 |
-
|
1982 |
-
if (!tree) return;
|
1983 |
-
|
1984 |
-
tree.innerHTML = '';
|
1985 |
-
buildDOMTree(document.documentElement, tree, 0, true);
|
1986 |
-
|
1987 |
-
if (selectedElement) {
|
1988 |
-
const elementId = selectedElement.id || Array.from(selectedElement.attributes)
|
1989 |
-
.find(attr => attr.name.startsWith('data-element-id'))?.value;
|
1990 |
-
|
1991 |
-
if (elementId) {
|
1992 |
-
const node = document.querySelector(`[data-element-id="${elementId}"]`);
|
1993 |
-
if (node) {
|
1994 |
-
node.classList.add('selected');
|
1995 |
-
updateCSSPanel(selectedElement);
|
1996 |
-
}
|
1997 |
-
}
|
1998 |
-
}
|
1999 |
-
}
|
2000 |
-
|
2001 |
// DOM変更を監視
|
2002 |
observer.observe(document.documentElement, {
|
2003 |
childList: true,
|
|
|
775 |
`;
|
776 |
container.appendChild(ttfbCard);
|
777 |
|
778 |
+
// Web Vitalsの計測を開始
|
779 |
loadWebVitals().then(() => {
|
780 |
if (window.webVitals) {
|
781 |
try {
|
782 |
+
// 新しいバージョンのWeb Vitalsではメソッド名が異なる可能性がある
|
783 |
+
if (window.webVitals.onCLS) {
|
784 |
+
window.webVitals.onCLS(updateCLS);
|
785 |
+
window.webVitals.onFCP(updateFCP);
|
786 |
+
window.webVitals.onFID(updateFID);
|
787 |
+
window.webVitals.onLCP(updateLCP);
|
788 |
+
window.webVitals.onTTFB(updateTTFB);
|
789 |
+
} else if (window.webVitals.getCLS) { // 古いバージョンの場合
|
790 |
window.webVitals.getCLS(updateCLS);
|
791 |
window.webVitals.getFCP(updateFCP);
|
792 |
window.webVitals.getFID(updateFID);
|
793 |
window.webVitals.getLCP(updateLCP);
|
794 |
window.webVitals.getTTFB(updateTTFB);
|
795 |
+
}
|
796 |
+
} catch (e) {
|
797 |
console.error('Web Vitals error:', e);
|
798 |
}
|
799 |
+
}
|
800 |
});
|
801 |
function updateCLS(metric) {
|
802 |
vitalsData.CLS = metric.value;
|
|
|
1696 |
|
1697 |
return panel;
|
1698 |
}
|
1699 |
+
// この関数を createElementsPanel() の外に移動し、最初に定義する
|
1700 |
+
function refreshElementsPanel() {
|
1701 |
+
let tree = document.getElementById('dom-tree');
|
1702 |
+
|
1703 |
+
if (!tree) {
|
1704 |
+
const panel = document.getElementById('elements-panel');
|
1705 |
+
if (panel) {
|
1706 |
+
const container = panel.querySelector('.elements-container');
|
1707 |
+
if (container) {
|
1708 |
+
tree = document.createElement('div');
|
1709 |
+
tree.className = 'dom-tree';
|
1710 |
+
tree.id = 'dom-tree';
|
1711 |
+
container.insertBefore(tree, container.querySelector('.css-panel'));
|
1712 |
+
}
|
1713 |
+
}
|
1714 |
+
}
|
1715 |
+
|
1716 |
+
if (!tree) return;
|
1717 |
+
|
1718 |
+
tree.innerHTML = '';
|
1719 |
+
buildDOMTree(document.documentElement, tree, 0, true);
|
1720 |
+
|
1721 |
+
if (selectedElement) {
|
1722 |
+
const elementId = selectedElement.id || Array.from(selectedElement.attributes)
|
1723 |
+
.find(attr => attr.name.startsWith('data-element-id'))?.value;
|
1724 |
+
|
1725 |
+
if (elementId) {
|
1726 |
+
const node = document.querySelector(`[data-element-id="${elementId}"]`);
|
1727 |
+
if (node) {
|
1728 |
+
node.classList.add('selected');
|
1729 |
+
updateCSSPanel(selectedElement);
|
1730 |
+
}
|
1731 |
+
}
|
1732 |
+
}
|
1733 |
+
}
|
1734 |
// Elementsパネル作成
|
1735 |
function createElementsPanel() {
|
1736 |
const panel = document.createElement('div');
|
|
|
2005 |
}
|
2006 |
}
|
2007 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2008 |
// DOM変更を監視
|
2009 |
observer.observe(document.documentElement, {
|
2010 |
childList: true,
|