초기 커밋.

This commit is contained in:
2025-02-03 11:02:48 +09:00
parent a7d46f415f
commit fe9aa0799f
2334 changed files with 674826 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,39 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="vendor/fontawesome-free/css/all.min.css" rel="stylesheet" type="text/css">
<link href="../../css/sb-admin-2.min.css" rel="stylesheet">
<link href="../../css/sb-custom-1.css" rel="stylesheet">
<script type="text/javascript" src="../../js/sb-custom-1.js"></script>
<title>로그뷰어: 부제목</title>
</head>
<body>
<div class="div-Title01">로그뷰어: 부제목</div>
<div class="div-margin01 div-border01">
<div class="div-header01 div-border01">Information</div>
<div class="div-content01">
<ul>
<li></li>
<li></li>
</ul>
</div>
</div>
<div class="div-border01">
<div class="div-header01 div-border01">화면</div>
<div class="div-padding01">
<img src="" onclick="OnloadImg(this.src)" />
</div>
</div>
<script>
const items = document.querySelectorAll('.div-header01');
items.forEach(item => item.addEventListener('click', ToggleNextElement_Div));
</script>
</body>
</html>

View File

@@ -0,0 +1,112 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="vendor/fontawesome-free/css/all.min.css" rel="stylesheet" type="text/css">
<link href="../../css/sb-admin-2.min.css" rel="stylesheet">
<link href="../../css/sb-custom-1.css" rel="stylesheet">
<script type="text/javascript" src="../../js/sb-custom-1.js"></script>
<title>로그뷰어: Grid 로그</title>
</head>
<body>
<div class="div-Title01">로그뷰어: Grid 로그</div>
<div class="div-margin01 div-border01">
<div class="div-header01 div-border01">Information</div>
<div class="div-content01">
Log Viewer는 Telerik사의 RadGridView를 적용하였습니다.<br />
Grid에 출력되는 메시지 항목들과 설명
<ul>
<li>[DateTime] 로그 기록일시</li>
<li>[Level] 로그레벨 (INFO, WARN, ERROR)</li>
<li>[Server] 서버종류 (EQP, MES, FDC, RMS, RTD)</li>
<li>[Type] 메시지유형 (SEND: EIS에서 메시지 전송, RECEIVED: 서버나 설비에서 보낸 메시지 수신)</li>
<li>[Message] 메시지명 (EQP: StreamFunction, 서버: 메시지명)</li>
<li><a class="href-collapse" href="#return">**[Return]</a> <span style="background-color:yellow">메시지에서 실패(Fail)가 발생할 경우에는 1을 기록</span></li>
<li><a class="href-collapse" href="#value">[Value]</a> 메시지를 구분하는 대표 정보</li>
<li>[Lot ID] 메시지에 포함된 LOT 정보</li>
<li>[Carrier ID] 메시지에 포함된 Carrier 정보</li>
<li>[Equipment ID] 메시지에 포함된 Equipment 정보</li>
<li>[Port ID] 메시지에 포함된 Port 정보</li>
<li>[HostPanel ID] 메시지에 포함된 HostPanel 정보</li>
<li>[Panel ID] 메시지에 포함된 Panel 정보</li>
<li>[Panel Qty] 메시지에 포함된 Qty 정보</li>
<li>[TID] 메시지 트랜잭션ID (TransationID)</li>
<li><a class="href-collapse" href="#systembyte">[SystemByte]</a> SECS 트랜잭션ID (고유번호)</li>
<li>[Column1] 메시지 정보</li>
<li>[Column2] </li>
<li>[Column3] </li>
<li>[Column4] </li>
<li>[Column5] </li>
</ul>
</div>
</div>
<div class="div-margin01 div-border01">
<div class="div-header01 div-border01">화면</div>
<div class="div-padding01">
<img src="Image/LV_Grid01.png" onclick="OnloadImg(this.src)" />
</div>
</div>
<div class="div-margin01 div-border01">
<div class="div-header01 div-border01"><a name="return">Return</a></div>
<div class="div-content01" id="return">
설비 또는 서버에서 Fail이 발생할 경우 '0'이 아닌 값이 기록되며 배경색은 붉은색으로 표시됩니다.<br /><br />
<b>example</b><br />
아래의 이미지에서는 LOT:12803910030B / MES StartRequestReply 메시지에서 Fail이 발생하였으며, Fail 메시지는 아래와 같습니다.<br />
"Message 파라미터 'CARRIERID'의 값 ''에 해당하는 Carrier 정보를 찾을 수 없습니다."<br />
TroubleShooting에서 해당 메시지를 찾아 후속조치 또는 운영팀에 문의하여 주시면 됩니다.<br />
두 번째 Fail 항목은 동일한 SystemByte 값으로 MES Fail 결과를 설비로 전송한 것으로 무시하면 됩니다.<br />
<div class="div-padding01">
<img src="Image/LV_Grid01_Return1.png" onclick="OnloadImg(this.src)" />
<br />
<img src="Image/LV_Grid01_Return2.png" onclick="OnloadImg(this.src)" />
</div>
</div>
</div>
<div class="div-margin01 div-border01">
<div class="div-header01 div-border01"><a name="value">Value</a></div>
<div class="div-content01" id="value">
아래와 같이 메시지가 갖는 대표적인 정보를 표시하고 있습니다.<br />
<ul>
<li>[S2F41] RCMD 코드와 이름</li>
<li>[S6F11] CEID와 이벤트명</li>
<li>[Alarm 관련] Alarm ID와 Set/Clear 여부</li>
<li>[TraceData 관련] TRID, TOTSMP</li>
<li>[Recipe 관련] PPID</li>
</ul>
</div>
</div>
<div class="div-margin01 div-border01">
<div class="div-header01 div-border01"><a name="systembyte">SystemByte</a></div>
<div class="div-content01" id="systembyte">
SECS에서 사용되는 메시지 트렌잭션ID로 한 트랜잭션의 Primary 메지시와 Secondary 메시지는 동일한 SystemByte를 사용한다.<br />
Marking된 메시지들은 설비에서 받은 SystemByte[23262] 메시지가 순차적으로 처리되는 것을 보여준다.<br />
<ol>
<li>EQP-->EIS S6F11 CEID: 62 UL_LOAD_COMPLETE</li>
<li>EIS-->MES LoadCompleteForUnloadRequest</li>
<li>MES-->EIS LoadCompleteForUnloadRequestReply</li>
<li>EIS-->EQP S6F12 ACKC6='0'</li>
</ol>
<div class="div-padding01">
<img src="Image/LV_Grid01_SystemByte.png" onclick="OnloadImg(this.src)" />
</div>
</div>
</div>
<script>
const items = document.querySelectorAll('.div-header01');
items.forEach(item => item.addEventListener('click', ToggleNextElement_Div));
const items0 = document.querySelectorAll('.href-collapse');
items0.forEach(item => Close_IDofHref(item));
items0.forEach(item => item.addEventListener('click', Open_IDofHref));
</script>
</body>
</html>

View File

@@ -0,0 +1,39 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="vendor/fontawesome-free/css/all.min.css" rel="stylesheet" type="text/css">
<link href="../../css/sb-admin-2.min.css" rel="stylesheet">
<link href="../../css/sb-custom-1.css" rel="stylesheet">
<script type="text/javascript" src="../../js/sb-custom-1.js"></script>
<title>로그뷰어: Text 로그</title>
</head>
<body>
<div class="div-Title01">로그뷰어: Text 로그</div>
<div class="div-margin01 div-border01">
<div class="div-header01 div-border01">Information</div>
<div class="div-content01">
<ul>
<li></li>
<li></li>
</ul>
</div>
</div>
<div class="div-border01">
<div class="div-header01 div-border01">화면</div>
<div class="div-padding01">
<img src="" onclick="OnloadImg(this.src)" />
</div>
</div>
<script>
const items = document.querySelectorAll('.div-header01');
items.forEach(item => item.addEventListener('click', ToggleNextElement_Div));
</script>
</body>
</html>

View File

@@ -0,0 +1,49 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="vendor/fontawesome-free/css/all.min.css" rel="stylesheet" type="text/css">
<link href="../../css/sb-admin-2.min.css" rel="stylesheet">
<link href="../../css/sb-custom-1.css" rel="stylesheet">
<script type="text/javascript" src="../../js/sb-custom-1.js"></script>
<title>로그뷰어: 설비정보</title>
</head>
<body>
<div class="div-Title01">로그뷰어: 설비정보</div>
<div class="div-border01 div-margin01">
<div class="div-header01 div-border01">Information</div>
<div class="div-content01">
<ul>
<li>선택된 설비의 정보를 출력합니다.</li>
<li>[Equipment Select...] 로그선택 창을 호출합니다.</li>
</ul>
</div>
</div>
<div class="div-border01">
<div class="div-header01 div-border01">화면</div>
<div class="div-padding01">
<img src="Image/LV_item01.png" onclick="OnloadImg(this.src)" />
</div>
<div class="div-padding01">
상단에서부터 순차적으로 다음의 정보가 출력됩니다.
<ul>
<li>설비ID</li>
<li>설비명</li>
<li>공정코드, 공정명</li>
<li>EIS 통신모델</li>
<li>EIS App 버전</li>
</ul>
</div>
</div>
<script>
const items = document.querySelectorAll('.div-header01');
items.forEach(item => item.addEventListener('click', ToggleNextElement_Div));
</script>
</body>
</html>

View File

@@ -0,0 +1,96 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="vendor/fontawesome-free/css/all.min.css" rel="stylesheet" type="text/css">
<link href="../../css/sb-admin-2.min.css" rel="stylesheet">
<link href="../../css/sb-custom-1.css" rel="stylesheet">
<script type="text/javascript" src="../../js/sb-custom-1.js"></script>
<title>로그뷰어: 로그목록 관리</title>
</head>
<body>
<div class="div-Title01">로그뷰어: 로그목록 관리</div>
<div class="div-margin01 div-border01">
<div class="div-header01 div-border01">Information</div>
<div class="div-content01">
현재 선택된 로그파일 목록을 관리합니다.<br />
기본적인 로그파일 선택은 '로그선택' 기능을 참조하여 주시기 바랍니다.
<ul>
<li><a class="href-collapse" href="#file-add">*로그파일 추가</a></li>
<li><a class="href-collapse" href="#file-remove">로그파일 제거</a></li>
<li><a class="href-collapse" href="#file-skip">로그파일 제외</a></li>
<li><a class="href-collapse" href="#file-parsing">**로그파일 분석</a></li>
</ul>
</div>
</div>
<div class="div-margin01 div-border01">
<div class="div-header01 div-border01">화면</div>
<div class="div-padding01">
<img src="Image/LV_item02.png" onclick="OnloadImg(this.src)" />
</div>
</div>
<div class="div-margin01 div-border01">
<div class="div-header01 div-border01"><a name="file-add">로그파일 추가</a></div>
<div class="div-content01" id="file-add">
로그파일을 목록에 추가합니다.<br />
분석 과정에서 현재 로그의 전/후 로그파일을 추가로 등록할때 활용합니다.
<ol>
<li>로그파일 항목 1건을 선택하면, 하단의 텍스트상자에 파일경로가 출력됩니다.</li>
<li>[Tab key]를 입력하면, 텍스트상자로 포커스가 이동하고 일부 영역이 자동 선택됩니다.</li>
<li>선택된 영역의 시간정보(2자리 숫자)를 수정하고 [Enter key] or [Add Button]를 입력하면</li>
<li>로그파일 목록에 입력된 로그파일 정보가 목록에 추가됩니다.</li>
<li>[F5 key] or [Parsing Button]를 입력하면 로그파일들을 분석하여 그리드에 출력합니다.</li>
</ol>
</div>
</div>
<div class="div-margin01 div-border01">
<div class="div-header01 div-border01"><a name="file-remove">로그파일 제거</a></div>
<div class="div-content01" id="file-remove">
로그파일을 목록에서 제거합니다.
<ol>
<li>목록에서 로그파일 항목 1건을 선택하고,</li>
<li>[Del key] or [Remove Button]를 입력하면 선택된 항목이 목록에서 제거됩니다.</li>
<li>[F5 key] or [Parsing Button]를 입력하면 로그파일들을 분석하여 그리드에 출력합니다.</li>
</ol>
</div>
</div>
<div class="div-margin01 div-border01">
<div class="div-header01 div-border01"><a name="file-skip">로그파일 제외</a></div>
<div class="div-content01" id="file-skip">
로그파일을 분석에서 제외합니다.
<ol>
<li>로그파일목록에서 체크를 해제합니다.</li>
<li>[F5 key] or [Parsing Button]를 입력하면 체크된 로그파일들만 분석하여 그리드에 출력합니다.</li>
</ol>
</div>
</div>
<div class="div-margin01 div-border01">
<div class="div-header01 div-border01"><a name="file-parsing">로그파일 분석</a></div>
<div class="div-content01" id="file-parsing">
로그파일 분석을 실행합니다.
<ol>
<li>로그파일목록이 변경 되었을때</li>
<li>새로고침이 필요할때 (EIS서버에서 로그파일을 다시 가져옵니다)</li>
</ol>
</div>
</div>
<script>
const items = document.querySelectorAll('.div-header01');
items.forEach(item => item.addEventListener('click', ToggleNextElement_Div));
const items0 = document.querySelectorAll('.href-collapse');
items0.forEach(item => Close_IDofHref(item));
items0.forEach(item => item.addEventListener('click', Open_IDofHref));
</script>
</body>
</html>

View File

@@ -0,0 +1,143 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="vendor/fontawesome-free/css/all.min.css" rel="stylesheet" type="text/css">
<link href="../../css/sb-admin-2.min.css" rel="stylesheet">
<link href="../../css/sb-custom-1.css" rel="stylesheet">
<script type="text/javascript" src="../../js/sb-custom-1.js"></script>
<title>로그뷰어: 옵션 및 기능</title>
</head>
<body>
<div class="div-Title01">로그뷰어: 옵션 및 기능</div>
<div class="div-margin01 div-border01">
<div class="div-header01 div-border01">Information</div>
<div class="div-content01">
<ul>
<li>[Auto Clear]</li>
<li>[Download]</li>
<li><a class="href-collapse" href="#showgroupcolumn">[Show Group Column]</a> Group by로 사용된 컬럼을 보여줍니다.</li>
<li>[Log Sync] Grid(로그)를 선택하면 텍스트(로그)의 위치 동기화를 설정합니다.</li>
<li>[Hide LinkTest] LinkTest 메시지를 Grid에 출력하지 않습니다.</li>
<li>[Hide TID] Transation 메시지를 Grid에 출력하지 않습니다.</li>
<li>[Hide TraceData] TraceDataReport 메시지를 Grid에 출력하지 않습니다.</li>
<li>
[EIS Parser]
<ul>
<li>EIS Parser: EIS Builder 2.6.3 이전 통신로그 분석</li>
<li>EIS Parser0: EIS Builder 2.6.3 통신로그 분석</li>
</ul>
</li>
<li>[Clear Filter] Grid에 설정된 Filter를 모두 해제합니다.</li>
<li>*[Column Resize(F6)] Grid의 컬럼너비를 데이터에 맞게 조정합니다.</li>
<li><a class="href-collapse" href="#markingfilter">*[Marking Filter]</a> Marking 된 메시지들만 Grid에 출력합니다.</li>
<li>[Open Log...] 로그파일들을 윈도우의 기본 텍스트 편집기로 열기합니다.</li>
<li>[Save Log...] 로그파일들을 사용자가 지정한 폴더에 저장합니다.</li>
<li><a class="href-collapse" href="#secsdefine">*[SECS Define...]</a> SECS Setting 정보를 팝업창에 출력합니다.</li>
<li><a class="href-collapse" href="#cleardownload">[Clear Download]</a> EIS 서버에서 다운로드 된 통신 로그파일들을 삭제합니다.</li>
</ul>
</div>
</div>
<div class="div-margin01 div-border01">
<div class="div-header01 div-border01">화면</div>
<div class="div-padding01">
<img src="Image/LV_item03.png" onclick="OnloadImg(this.src)" />
</div>
</div>
<div class="div-margin01 div-border01">
<div class="div-header01 div-border01"><a name="showgroupcolumn">Show Group Column</a></div>
<div class="div-content01" id="showgroupcolumn">
옵션을 선택하면 아래와 같이 컬럼이 출력됩니다.
<div class="div-padding01">
<img src="Image/LV_item03_ShowGroupColumn1.png" onclick="OnloadImg(this.src)" />
</div>
옵션을 해제하면 아래와 같이 컬럼이 출력되지 않습니다.
<div class="div-padding01">
<img src="Image/LV_item03_ShowGroupColumn2.png" onclick="OnloadImg(this.src)" />
</div>
</div>
</div>
<div class="div-margin01 div-border01">
<div class="div-header01 div-border01"><a name="markingfilter">Marking Filter</a></div>
<div class="div-content01" id="markingfilter">
<div class="div-padding01">
<b>Marking...?</b><br />
Grid에서 Cell을 Double-Click 하면, 해당 Column에서 동일한 값을 갖는 Row들은 배경색이 녹색으로 변경되어 표시됩니다.<br />
[Esc key]를 입력하면 Marking이 취소됩니다.
</div>
<div class="div-padding01">
<b>Marking Filter...?</b><br />
[Marking Filter]를 클릭하면, Marking 된 Row들만 Grid에 출력됩니다.<br />
[F5 key] or [Parsing Button]를 입력하면 원본 로그를 출력합니다.<br />
</div>
<div class="div-padding01">
<b>example</b><br />
특정 LOT의 이력과 투입 Carrier 및 배출 Carrier 정보를 확인할 때...<br />
[Marking] 투입 Carrier, 배출 Carrier, LOT-ID<br />
<div class="div-padding01">
<img src="Image/LV_item03_MarkingFilter.png" onclick="OnloadImg(this.src)" />
</div>
</div>
</div>
</div>
<div class="div-margin01 div-border01">
<div class="div-header01 div-border01"><a name="secsdefine">SECS Define</a></div>
<div class="div-content01" id="secsdefine">
<div class="div-padding01">
<b>SECS Define...?</b><br />
SECS(SEMI Equipment Communication Standard)는 반도체 장비 통신 표준으로 다양한 분야에서 활용중입니다.<br />
[SECS Define]은 SECS를 사용하는 설비에 전송된 Event와 Report 정보를 제공합니다.<br />
<br />
GSP 01 셋팅은 설비의 모든 Event를 Enable 하도록 설정되어 있으며,<br />
GSP 02 셋팅은 일부(MCS 관련) Event가 Disable 설정되어 있습니다.<br />
Event가 Disable 되면 설비에서는 해당 메시지를 Host에게 전송하지 않으므로, 관련 작업을 수행하지 않게 됩니다.<br />
</div>
<div class="div-padding01">
<b>example</b><br />
SPECTYPE_01_DSENT 통신모델의 GSP 01, 02 셋팅 정보 화면입니다.<br />
GSP 02는 CEID: 51 LD_LOAD_REQUEST 이벤트가 Disable 되어 투입기의 반송요청이 Off 되어 있습니다.<br />
*[참고] Event가 Enable 되어 있어도 설비 자체에서 Event를 전송하지 않도록 설정된 경우도 존재합니다.
<div class="div-padding01">
<img src="Image/LV_item03_SecsDefine1.png" style="max-width: 50%; display: inline-block; " onclick="OnloadImg(this.src)" />
&nbsp;&nbsp;
<img src="Image/LV_item03_SecsDefine2.png" style="max-width: 50%; display: inline-block;" onclick="OnloadImg(this.src)" />
</div>
<div class="div-padding01">
2022.04.18 SPECTYPE_01_DSENT 통신모델의 GSP(GemSetting) 현황입니다.
<img src="Image/LV_item03_SecsDefine3.png" onclick="OnloadImg(this.src)" />
</div>
</div>
</div>
</div>
<div class="div-margin01 div-border01">
<div class="div-header01 div-border01"><a name="cleardownload">Clear Download</a></div>
<div class="div-content01" id="cleardownload">
Log Viewer는 EIS AP 서버에 저장된 통신 로그파일을 아래의 경로에 다운로드 후 분석을 실행합니다.<br />
다운로드 된 통신 로그파일들의 삭제를 실행합니다.<br />
로컬경로: 사용자>문서>DDUtility>Download 폴더<br />
파일명: [설비ID]_년-월-일_시.Log
<div class="div-padding01">
<img src="Image/LV_item03_ClearDownload.png" onclick="OnloadImg(this.src)" />
</div>
</div>
</div>
<script>
const items = document.querySelectorAll('.div-header01');
items.forEach(item => item.addEventListener('click', ToggleNextElement_Div));
const items0 = document.querySelectorAll('.href-collapse');
items0.forEach(item => Close_IDofHref(item));
items0.forEach(item => item.addEventListener('click', Open_IDofHref));
</script>
</body>
</html>

View File

@@ -0,0 +1,41 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="vendor/fontawesome-free/css/all.min.css" rel="stylesheet" type="text/css">
<link href="../../css/sb-admin-2.min.css" rel="stylesheet">
<link href="../../css/sb-custom-1.css" rel="stylesheet">
<script type="text/javascript" src="../../js/sb-custom-1.js"></script>
<title>로그뷰어: 소개</title>
</head>
<body>
<div class="div-Title01">로그뷰어: 소개</div>
<div class="div-margin01 div-border01">
<div class="div-header01 div-border01">Information</div>
<div class="div-content01">
<ul>
<li>설비 기본정보의 제공 (ID, Name, 공정, 상태, ...)</li>
<li>로그파일 선택 창을 통한 빠른 로그파일 접근</li>
<li>EIS 로그 분석을 위한 통신메시지의 중요 정보를 Grid로 제공</li>
<li>Grid의 Filter, Sort, Group 기능을 활용한 분석환경 제공</li>
</ul>
</div>
</div>
<div class="div-border01">
<div class="div-header01 div-border01">화면</div>
<div class="div-padding01">
<img src="Image/LV_root.png" onclick="OnloadImg(this.src)" />
</div>
</div>
<script>
const items = document.querySelectorAll('.div-header01');
items.forEach(item => item.addEventListener('click', ToggleNextElement_Div));
</script>
</body>
</html>