시행 착오를 거쳐 <script>
태그가 포함 된 템플릿 파일에서 템플릿 엔진이 실패합니다. 이것은 분명히 큰 문제이지만, 왜 그것이 실패하고 있는지 알 수는 없습니다.페이지를 렌더링 할 수 없거나 DOMDocumentFragment가 <script> 태그 또는 무언가로 깨졌습니다.
매우 특이한 방식으로 실패합니다. <script>
태그가 주석 처리 된 상태에서 페이지가 정상적으로로드되지만 <script>
태그가 주석 처리되지 않은 상태에서 페이지가로드되고 소스보기을 실행하면 브라우저에 아무 것도 렌더링되지 않더라도 전체 페이지가로드 된 것으로 표시됩니다. 방화범 입력 DOM 검사기는 머리 태그와 빈 몸체를 표시합니다.
낯선 부분 (적어도 나는이 스크립트 태그가 외부 파일을 목표로한다고 생각합니다.) CDATA 섹션 외부에 페이지 내 스크립팅이 있다면 예기치 않은 결과를 이해할 수있었습니다.
사용 된 코드를 게시 하겠지만 매우 길기 때문에 어디에서 시작할 것인지 알 수 없습니다. 사실 문제가있는 경우 문제가있는 곳입니다.
즉, 내 템플릿 엔진은 DOMDocument
개체 하나를 만든 다음 템플릿 부분을 관리하기 위해 DOMDocumentFragment
개체를 만듭니다. 첫 번째 구문 분석 반복은 일반적으로 전체 템플릿 파일을 조각으로로드 한 다음 특정 태그를 찾는 특정 매개 변수를 기반으로 트리 아래로 작업합니다.
TL : DR : PHP DOM 클래스가 스크립트 태그로 인해 페이지를 제대로 만들지 못하는 이유를 알고 있습니까? 내가 <![CDATA[ ... ]]>
태그 안에 그것들을 동봉하면 아무것도하지 않습니다. 태그를 제거하거나 주석 처리 할 때만 브라우저에 과이로드됩니다.
최소한의 코드 재생산을 해줄 수 있습니까? –
주전원 도관을 회로 "B"로 다시 연결합니다. 또는 역 위상 조정을 시도하십시오. – Pointy
이것은 문제와 관련이있을지라도 직접 질문에 대답하지 않습니다. 당신은 serverside (PHP)와 clientside (html, css, javascript)가 무엇인지 완전히 명확하지 않은 것 같습니다. 나는 당신이이 문제의 가능한 원인으로 html 소스 전체를 보았음에도 불구하고 PHP를 언급하기 때문에 이것을 말하고있다. 웹 개발자로서의 구별을 이해하는 것은 매우 중요합니다. 그것은 당신에게 끝이없는 혼란을 야기 할 것입니다. 해결책이 나오기 전에 고객 측에서 문제를 찾아야합니다. – goat