document.write시에 다른 것이 그려지지 않고 onerror가 작동하지 않습니다.

조회수 375회
<html>
    <head>
        <title>TEST TITLE</title>
        <script src="test.jsp></script>
    <head>
    <body onload="upload();">
    <h1>TEST H1</h1>
    </body>

</html>
function upload() {
    for(var i = 1; i < 301; i++) {
        document.write("<img src="./img/' +i+ '.webp" onclick="changeStyle('+i+')" onerror="this.style.display='none'">");
    }
}

이렇게 작성을 했습니다.

여기서 h1은 잠깐 떴다가 사라진 후에 사진들이 뜨고, 데브툴에서도 지워진 상태입니다. 그리고 웹페이지 제목도 변하지 않고 index.html이 됩니다.

또한 jsp의 document.write에서 onclick을 안 넣으면 작동을 하는데 넣으면 syntax ')'가 나옵니다. vscode 내에선 딱히 틀린 게 없다고 나오는데 도저히 모르겠네요 옆에 onclick을 봐도 비슷하게 적었는데 그러니까요... 혹시 왜 그런지 아시나요?

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 음.. 따옴표를 잘 고치면 작동할 거에요. 이런건 직접 해보셔야 실력이 늘기 때문에 정답을 알려드릴 수는 없을 거 같고.. 될 때까지 스스로 고쳐 보시겠어요? (힌트 https://hianna.tistory.com/335) 엽토군 2022.7.25 12:49
  • 자료는 고맙습니다, 선생님. 하지만 제가 'none'에서 선생님께서 주신 자료와 유사한 문제 같아서 옆에 onclick에 "changeStyle()"을 넣은 것처럼 onerror="noImage()"를 넣었지만 그래도 syntax가 나와서 답답해서 올려봤습니다. 분명 똑같은 거 같은데 onerror가 들어가면 안 되고 빼면 되는 게 이해가 되지 않습니다. 알 수 없는 사용자 2022.7.26 02:35
  • onerror 쪽은 큰따옴표도 필요하고 작은따옴표도 필요하고 해서 그래요. 이스케이프 하셔야 해요. VS code 쓰신다면, ctrl+k, m 순서대로 누른 다음 JavaScript 검색해서 문법 하이라이팅을 해보시겠어요? 엽토군 2022.7.26 08:57
  • 와... 우선 jsp 파일에선 익스텐션을 설정해도 컬러가 바뀌지 않아서 그냥 썼었는데 이렇게 하는 거군요.. 그리고 조언 덕분에 성공했습니다. \"this.style.display='none\"으로 해서 완료했습니다. 답변 완료 체크를 해드리고 싶은데 괜찮으시면 답변에다 다시 한 번 작성해 주실 수 있나요? 알 수 없는 사용자 2022.7.26 16:40
  • 아~~ 괜찮습니다 본인이 스스로 하신 거니까요 ^^ (가끔 이렇게 간단한 코멘트로 해결되는 문제는 코멘트로 해결하곤 합니다) 엽토군 2022.7.27 08:54
  • 다시 한 번 감사 말씀 드립니다. 고맙습니다 알 수 없는 사용자 2022.7.27 15:12

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)