메인비주얼 url 제거 및 빈 파라메터 제거

This commit is contained in:
hehihoho3@gmail.com 2025-02-24 15:58:28 +09:00
parent a37d0c24e5
commit 2843faa5ad

View File

@ -37,14 +37,79 @@
<script type="text/javascript" src="<c:url value='/js/EgovMultiFile.js'/>"></script>
<script type="text/javaScript" language="javascript">
$( document ).ready(function(){
makeDate('ntceBgndeYYYMMDD');
makeDate('ntceEnddeYYYMMDD');
document.getElementById("mlink").addEventListener("paste", function(event) {
// 클립보드 데이터를 가져옴
let pastedText = event.clipboardData.getData("text");
// 콘솔 출력 (붙여넣은 URL 확인)
console.log("붙여넣기 한 URL:", pastedText);
// 불필요한 파라미터 제거 후 새로운 URL 생성
let cleanedUrl = cleanUrlParameters(pastedText);
// input 필드에 깨끗한 URL 입력
setTimeout(() => {
this.value = cleanedUrl;
console.log("정리된 URL:", cleanedUrl);
}, 0);
});
});
/**
* URL에서 빈 값의 파라미터를 제거하는 함수
* @param {string} url 원본 URL 문자열
* @returns {string} 불필요한 파라미터가 제거된 URL
*/
function cleanUrlParameters(url) {
try {
// URL이 절대경로 (/web/... 형태)인지 확인
let hasFullDomain = url.startsWith("http://") || url.startsWith("https://");
let urlObj;
if (hasFullDomain) {
// 도메인이 포함된 URL 처리
urlObj = new URL(url);
} else {
// 절대경로 URL 처리 (가상의 도메인 추가 후 파싱)
urlObj = new URL("https://www.munjaon.co.kr" + url);
}
let params = new URLSearchParams(urlObj.search);
// ❗ 값이 비어있는 모든 파라미터 제거
for (let [key, value] of [...params.entries()]) { // `params.entries()`를 배열로 변환하여 반복
if (!value.trim()) { // 값이 비어있는 경우 제거
params.delete(key);
}
}
// 정리된 URL 반환
let cleanedPath = urlObj.pathname + (params.toString() ? "?" + params.toString() : "");
// 정리된 URL 반환 (도메인을 제거하고 절대경로만 반환)
return cleanedPath.replace(/^https:\/\/www\.munjaon\.co\.kr/, "");
} catch (e) {
console.warn("잘못된 URL 형식:", url);
return url; // URL 파싱 실패 시 원본 유지
}
}
//게시기간이 없으면 초기 값 입력
function makeDate(id){
if($("#"+id).val()== '--'){
let today = new Date();
let formattedDate = today.toISOString().split('T')[0]; // YYYY-MM-DD 형식
$("#"+id).val(formattedDate);
}
}