soiz1 commited on
Commit
48f5032
·
verified ·
1 Parent(s): dd61bf4

Update dev-tools.js

Browse files
Files changed (1) hide show
  1. dev-tools.js +47 -40
dev-tools.js CHANGED
@@ -775,19 +775,28 @@ observer.observe(document.documentElement, {
775
  `;
776
  container.appendChild(ttfbCard);
777
 
778
- // Web Vitalsの計測を開始
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
- } catch (e) {
 
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,