function 실행 후 새로고침 하는 법? 채택완료
안녕하세요?
아래 스크립트 실행 후 새로고침을 실행하려고 합니다.
어떻게 하면 좋을까요?
마지막 return false; 바로 아래에 location.reload(); 코드를 넣으면 작동이 안 되고,
바로 위에 넣었더니, 작동은 되는데 function 이벤트가 적용이 안 되네요. ㅜ
</p>
<p> <script type="text/javascript"></p>
<p>function googleTranslateElementInit() {new google.translate.TranslateElement({pageLanguage: 'ko',autoDisplay: true}, 'google_translate_element');}</p>
<p> </p>
<p> /* 새 UI 선택 클릭 이벤트가 발생하면</p>
<p> 감춤 처리한 구글 번역 콤보리스트에</p>
<p> 선택한 언어를 적용해 변경 이벤트를 발생시키는 코드 */</p>
<p> </p>
<p> document.querySelector('.translation-links').addEventListener('click',trans);</p>
<p> </p>
<p> function trans(event) {</p>
<p> let el = event.target;</p>
<p> if(el != null){</p>
<p> while(el.nodeName == 'FONT' || el.nodeName == 'SPAN'){el = el.parentElement;}</p>
<p> const tolang = el.dataset.lang; // 변경할 언어 코드 얻기</p>
<p> const gtcombo = document.querySelector('.goog-te-combo');</p>
<p> if (gtcombo == null) {</p>
<p> alert("Error: Could not find Google translate Combolist.");</p>
<p> return false;</p>
<p> }</p>
<p> gtcombo.value = tolang; // 변경할 언어 적용</p>
<p> gtcombo.dispatchEvent(new Event('change')); // 변경 이벤트 트리거</p>
<p> }</p>
<p> document.body.style.cssText = "";</p>
<p> </p>
<p> return false;</p>
<p> };</p>
<p>
</p>
<p> </script></p>
<p>
답변 5개
return false;
→
setTimeout(function() { window.location.reload(); }, 1000);
return false;
댓글을 작성하려면 로그인이 필요합니다.
다음과 같은 방법도 있으니 참고해 보세요
</p>
<p>document.querySelector('.translation-links').addEventListener('click', trans);</p>
<p>function trans(event) {
let el = event.target;
if (el != null) {
while (el.nodeName == 'FONT' || el.nodeName == 'SPAN') {
el = el.parentElement;
}
const tolang = el.dataset.lang; // 변경할 언어 코드 얻기
const gtcombo = document.querySelector('.goog-te-combo');
if (gtcombo == null) {
alert("Error: Could not find Google translate Combolist.");
return false;
}
gtcombo.value = tolang; // 변경할 언어 적용
gtcombo.dispatchEvent(new Event('change')); // 변경 이벤트 트리거
}
document.body.style.cssText = "";</p>
<p> // 새로고침 실행
location.reload();</p>
<p> // 기본 동작 막기
event.preventDefault();
}
댓글을 작성하려면 로그인이 필요합니다.
리로드 한다해도 펑션상태를 알수 없기 때문에 의미가 없습니다.
어차피 리로드 펑션 리로드 펑션.. 해봤자 현재 상태 저장이 불가.
따라서 페이지 새로고침이 아닌 ajax 를 통하여 데이터를 가져오는게 좋아보일듯합니다.
부득이하게 리로드 해야겠다면 언어코드를 get 이나 post 파라미터로 보내서
리로드 후에도 펑션값이 유지되게 하세요.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인