programing

제이드/퍼그로 인라인 자바스크립트를 렌더링하려면 어떻게 해야 합니까?

sourcejob 2023. 6. 23. 22:03
반응형

제이드/퍼그로 인라인 자바스크립트를 렌더링하려면 어떻게 해야 합니까?

제이드(http://jade-lang.com/) 를 사용하여 자바스크립트를 내 페이지에 렌더링하려고 합니다.

프로젝트가 노드에 있습니다.익스프레스를 사용하는 JS, 머리에 인라인 자바스크립트를 쓰고 싶을 때까지 모든 것이 제대로 작동합니다.제이드 문서의 예를 들어봐도 제가 놓치고 있는 것은 무엇입니까?

옥본

!!! 5
html(lang="en")
  head
    title "Test"
    script(type='text/javascript')
      if (10 == 10) {
        alert("working")
      }
  body

브라우저에서 렌더링된 HTML 결과

<!DOCTYPE html>
<html lang="en">
<head>
  <title>"Test"</title>
  <script type="text/javascript">
    <if>(10 == 10) {<alert working></alert></if>}
  </script>
</head>
<body>
</body>
</html>

여기서 분명히 뭔가 잘못된 생각이 있나요?

단순히 뒤에 점이 있는 'script' 태그를 사용합니다.

script.
  var users = !{JSON.stringify(users).replace(/<\//g, "<\\/")}

https://github.com/pugjs/pug/blob/master/packages/pug/examples/dynamicscript.pug

:javascript버전 7.0에서 필터가 제거되었습니다.

의사들은 당신이 사용해야 한다고 말합니다.script지금 태그, 다음에 a입니다..char 및 선행 공백 없음.

예:

script.
  if (usingJade)
    console.log('you are awesome')
  else
    console.log('use jade')

로 컴파일됩니다.

<script>
  if (usingJade)
    console.log('you are awesome')
  else
    console.log('use jade')
</script>

지정된 유형의 스크립트 태그를 사용합니다. 점 앞에 포함하기만 하면 됩니다.

script(type="text/javascript").
  if (10 == 10) {
    alert("working");
  }

컴파일 대상:

<script type="text/javascript">
  if (10 == 10) {
    alert("working");
  }
</script>

스크립트 태그만 사용 안 함.

를 사용한 솔루션|:

script
  | if (10 == 10) {
  |   alert("working")
  | }

아니면..:

script.
  if (10 == 10) {
    alert("working")
  }

답변의 세 번째 버전:

여기 인라인 제이드 자바스크립트의 여러 줄 예제가 있습니다.저는 당신이 그것을 사용하지 않고 쓸 수 있다고 생각하지 않습니다.-이것은 제가 부분적으로 사용하는 플래시 메시지의 예입니다.이것이 도움이 되길 바랍니다!

-if(typeof(info) !== 'undefined')
  -if (info)
    - if(info.length){
      ul
        -info.forEach(function(info){
          li= info
      -})
  -}

당신이 얻으려는 코드가 당신의 질문에 있는 코드입니까?

그렇다면 두 가지가 필요하지 않습니다. 첫째, 자바스크립트/스크립트라고 선언할 필요가 없습니다. 입력 후 코딩을 시작하면 됩니다.-두 번째, 입력 후-if입력할 필요가 없습니다.{또는}어느 하나.그게 제이드를 꽤 달콤하게 만드는 이유야.

---------------------------------------------------------------------------------

미리 준비해 보십시오.if와 함께-:

-if(10 == 10)
  //do whatever you want here as long as it's indented two spaces from
   the `-` above

제이드의 예는 다음과 같습니다.

https://github.com/visionmedia/jade/blob/master/examples/

script(nonce="some-nonce").
  console.log("test");

//- Workaround
<script nonce="some-nonce">console.log("test");</script>

다중 행 콘텐츠의 경우 일반적으로 "|"을 사용하지만, 다음과 같습니다.

스크립트, 스타일 및 텍스트 영역과 같은 텍스트만 허용하는 태그에는 선행 문자 | 문자가 필요하지 않습니다.

이것은 당신이 겪고 있는 문제를 재현할 수 없다는 것을 의미합니다.제가 그 코드를 옥 템플릿에 붙여넣으면 올바른 출력이 생성되고 페이지 로드 시 경고 메시지가 나타납니다.

사용:javascript필터를 씌우기이렇게 하면 스크립트 태그가 생성되고 스크립트 내용이 CDATA로 이스케이프됩니다.

!!! 5
html(lang="en")
  head
    title "Test"
    :javascript
      if (10 == 10) {
        alert("working")
      }
  body

언급URL : https://stackoverflow.com/questions/5858218/how-can-i-render-inline-javascript-with-jade-pug

반응형