soiz1 commited on
Commit
9760483
·
verified ·
1 Parent(s): d8af696

Update dev-tools.js

Browse files
Files changed (1) hide show
  1. dev-tools.js +108 -109
dev-tools.js CHANGED
@@ -1696,7 +1696,27 @@ loadWebVitals().then(() => {
1696
 
1697
  return panel;
1698
  }
1699
- // この関数を createElementsPanel() の外に移動し、最初に定義する
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1700
  function refreshElementsPanel() {
1701
  let tree = document.getElementById('dom-tree');
1702
 
@@ -1731,115 +1751,8 @@ function refreshElementsPanel() {
1731
  }
1732
  }
1733
  }
1734
- // Elementsパネル作成
1735
- function createElementsPanel() {
1736
- const panel = document.createElement('div');
1737
- panel.className = 'devtools-panel';
1738
- panel.id = 'elements-panel';
1739
-
1740
- const container = document.createElement('div');
1741
- container.className = 'elements-container';
1742
-
1743
- const tree = document.createElement('div');
1744
- tree.className = 'dom-tree';
1745
- tree.id = 'dom-tree';
1746
-
1747
- const cssPanel = document.createElement('div');
1748
- cssPanel.className = 'css-panel';
1749
- cssPanel.id = 'css-panel';
1750
 
1751
- container.appendChild(tree);
1752
- container.appendChild(cssPanel);
1753
- panel.appendChild(container);
1754
-
1755
- // CSSパネル更新関数
1756
- function updateCSSPanel(element) {
1757
- const cssPanel = document.getElementById('css-panel');
1758
- cssPanel.innerHTML = '';
1759
-
1760
- if (!element) return;
1761
-
1762
- if (element.style.length > 0) {
1763
- const inlineRule = document.createElement('div');
1764
- inlineRule.className = 'css-rule';
1765
-
1766
- const selector = document.createElement('div');
1767
- selector.className = 'css-selector';
1768
- selector.textContent = 'インラインスタイル';
1769
- inlineRule.appendChild(selector);
1770
-
1771
- for (let i = 0; i < element.style.length; i++) {
1772
- const propName = element.style[i];
1773
- const propValue = element.style[propName];
1774
-
1775
- const propDiv = document.createElement('div');
1776
- propDiv.className = 'css-property';
1777
-
1778
- const nameSpan = document.createElement('span');
1779
- nameSpan.className = 'css-property-name editable';
1780
- nameSpan.textContent = propName;
1781
- nameSpan.onclick = () => editCSSProperty(element, propName, 'style');
1782
-
1783
- const valueSpan = document.createElement('span');
1784
- valueSpan.className = 'css-property-value editable';
1785
- valueSpan.textContent = propValue;
1786
- valueSpan.onclick = () => editCSSProperty(element, propName, 'style');
1787
-
1788
- const toggleSpan = document.createElement('span');
1789
- toggleSpan.className = 'css-toggle';
1790
- toggleSpan.textContent = '×';
1791
- toggleSpan.title = 'プロパティを無効化';
1792
- toggleSpan.onclick = () => {
1793
- element.style[propName] = '';
1794
- updateCSSPanel(element);
1795
- };
1796
-
1797
- propDiv.appendChild(nameSpan);
1798
- propDiv.appendChild(valueSpan);
1799
- propDiv.appendChild(toggleSpan);
1800
- inlineRule.appendChild(propDiv);
1801
- }
1802
-
1803
- cssPanel.appendChild(inlineRule);
1804
- }
1805
-
1806
- const computedStyles = window.getComputedStyle(element);
1807
- const computedRule = document.createElement('div');
1808
- computedRule.className = 'css-rule';
1809
-
1810
- const computedSelector = document.createElement('div');
1811
- computedSelector.className = 'css-selector';
1812
- computedSelector.textContent = '計算されたスタイル';
1813
- computedRule.appendChild(computedSelector);
1814
-
1815
- const importantProps = [
1816
- 'display', 'position', 'width', 'height', 'margin', 'padding',
1817
- 'color', 'background', 'border', 'font', 'flex', 'grid'
1818
- ];
1819
-
1820
- importantProps.forEach(prop => {
1821
- const value = computedStyles[prop];
1822
-
1823
- const propDiv = document.createElement('div');
1824
- propDiv.className = 'css-property';
1825
-
1826
- const nameSpan = document.createElement('span');
1827
- nameSpan.className = 'css-property-name';
1828
- nameSpan.textContent = prop;
1829
-
1830
- const valueSpan = document.createElement('span');
1831
- valueSpan.className = 'css-property-value';
1832
- valueSpan.textContent = value;
1833
-
1834
- propDiv.appendChild(nameSpan);
1835
- propDiv.appendChild(valueSpan);
1836
- computedRule.appendChild(propDiv);
1837
- });
1838
-
1839
- cssPanel.appendChild(computedRule);
1840
- }
1841
-
1842
- // DOMツリー構築
1843
  function buildDOMTree(node, parentElement, depth = 0, isRoot = false) {
1844
  if (node.nodeType === Node.ELEMENT_NODE) {
1845
  const element = document.createElement('div');
@@ -1984,6 +1897,92 @@ function refreshElementsPanel() {
1984
  parentElement.appendChild(text);
1985
  }
1986
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1987
 
1988
  // CSSプロパティ編集
1989
  function editCSSProperty(element, propName, styleType) {
 
1696
 
1697
  return panel;
1698
  }
1699
+ // Elementsパネル作成
1700
+ function createElementsPanel() {
1701
+ const panel = document.createElement('div');
1702
+ panel.className = 'devtools-panel';
1703
+ panel.id = 'elements-panel';
1704
+
1705
+ const container = document.createElement('div');
1706
+ container.className = 'elements-container';
1707
+
1708
+ const tree = document.createElement('div');
1709
+ tree.className = 'dom-tree';
1710
+ tree.id = 'dom-tree';
1711
+
1712
+ const cssPanel = document.createElement('div');
1713
+ cssPanel.className = 'css-panel';
1714
+ cssPanel.id = 'css-panel';
1715
+
1716
+ container.appendChild(tree);
1717
+ container.appendChild(cssPanel);
1718
+ panel.appendChild(container);
1719
+ // この関数を createElementsPanel() の外に移動し、最初に定義する
1720
  function refreshElementsPanel() {
1721
  let tree = document.getElementById('dom-tree');
1722
 
 
1751
  }
1752
  }
1753
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1754
 
1755
+ // DOMツリー構築
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1756
  function buildDOMTree(node, parentElement, depth = 0, isRoot = false) {
1757
  if (node.nodeType === Node.ELEMENT_NODE) {
1758
  const element = document.createElement('div');
 
1897
  parentElement.appendChild(text);
1898
  }
1899
  }
1900
+ // CSSパネル更新関数
1901
+ function updateCSSPanel(element) {
1902
+ const cssPanel = document.getElementById('css-panel');
1903
+ cssPanel.innerHTML = '';
1904
+
1905
+ if (!element) return;
1906
+
1907
+ if (element.style.length > 0) {
1908
+ const inlineRule = document.createElement('div');
1909
+ inlineRule.className = 'css-rule';
1910
+
1911
+ const selector = document.createElement('div');
1912
+ selector.className = 'css-selector';
1913
+ selector.textContent = 'インラインスタイル';
1914
+ inlineRule.appendChild(selector);
1915
+
1916
+ for (let i = 0; i < element.style.length; i++) {
1917
+ const propName = element.style[i];
1918
+ const propValue = element.style[propName];
1919
+
1920
+ const propDiv = document.createElement('div');
1921
+ propDiv.className = 'css-property';
1922
+
1923
+ const nameSpan = document.createElement('span');
1924
+ nameSpan.className = 'css-property-name editable';
1925
+ nameSpan.textContent = propName;
1926
+ nameSpan.onclick = () => editCSSProperty(element, propName, 'style');
1927
+
1928
+ const valueSpan = document.createElement('span');
1929
+ valueSpan.className = 'css-property-value editable';
1930
+ valueSpan.textContent = propValue;
1931
+ valueSpan.onclick = () => editCSSProperty(element, propName, 'style');
1932
+
1933
+ const toggleSpan = document.createElement('span');
1934
+ toggleSpan.className = 'css-toggle';
1935
+ toggleSpan.textContent = '×';
1936
+ toggleSpan.title = 'プロパティを無効化';
1937
+ toggleSpan.onclick = () => {
1938
+ element.style[propName] = '';
1939
+ updateCSSPanel(element);
1940
+ };
1941
+
1942
+ propDiv.appendChild(nameSpan);
1943
+ propDiv.appendChild(valueSpan);
1944
+ propDiv.appendChild(toggleSpan);
1945
+ inlineRule.appendChild(propDiv);
1946
+ }
1947
+
1948
+ cssPanel.appendChild(inlineRule);
1949
+ }
1950
+
1951
+ const computedStyles = window.getComputedStyle(element);
1952
+ const computedRule = document.createElement('div');
1953
+ computedRule.className = 'css-rule';
1954
+
1955
+ const computedSelector = document.createElement('div');
1956
+ computedSelector.className = 'css-selector';
1957
+ computedSelector.textContent = '計算されたスタイル';
1958
+ computedRule.appendChild(computedSelector);
1959
+
1960
+ const importantProps = [
1961
+ 'display', 'position', 'width', 'height', 'margin', 'padding',
1962
+ 'color', 'background', 'border', 'font', 'flex', 'grid'
1963
+ ];
1964
+
1965
+ importantProps.forEach(prop => {
1966
+ const value = computedStyles[prop];
1967
+
1968
+ const propDiv = document.createElement('div');
1969
+ propDiv.className = 'css-property';
1970
+
1971
+ const nameSpan = document.createElement('span');
1972
+ nameSpan.className = 'css-property-name';
1973
+ nameSpan.textContent = prop;
1974
+
1975
+ const valueSpan = document.createElement('span');
1976
+ valueSpan.className = 'css-property-value';
1977
+ valueSpan.textContent = value;
1978
+
1979
+ propDiv.appendChild(nameSpan);
1980
+ propDiv.appendChild(valueSpan);
1981
+ computedRule.appendChild(propDiv);
1982
+ });
1983
+
1984
+ cssPanel.appendChild(computedRule);
1985
+ }
1986
 
1987
  // CSSプロパティ編集
1988
  function editCSSProperty(element, propName, styleType) {