2014-11-05 3 views
0

새 Magento 사이트를 방금 시작했으며 'c'라는 글자가 태그 바로 뒤에 따옴표로 표시됩니다. 이전에 로컬 컴퓨터 나 품질 보증 사이트에 나타나지 않고 템플릿 파일을 검사했는데 그 중 하나도 없습니다. 로컬에서 실행되는 동일한 코드와 GIT를 통한 버전 관리하에있는 QA 사이트에서 코드 문제가 될 수 없다는 것은 거의 확실합니다.본문 태그 바로 뒤에 따옴표로 묶인 글자

캐시를 지우고 JavaScript가 Chrome 개발자 도구에 삽입되었는지 확인했지만 아무 것도 찾을 수 없었습니다.

이상하게도 'c'는 뷰 소스 문서에 없지만 크롬 관리자로 볼 수 있습니다.

enter image description here

나는 또한이 태그 바로로드로는 마 젠토 CMS 페이지/블록에서 오는 될 수 있다고 생각하지 않습니다.

+1

페이지 소스에 없다면 JS에 의해 확실히 추가됩니다. 대신 거기에 있어야 할 다른 것이 있습니까? 나는 그것을 문자열 ('var [0]')로 대체 한 배열일지도 모른다고 생각하고있다. 그래서 당신은 그것이 무엇이든간에 첫번째 문자를 얻는다. – Shomz

+0

@Shomz 덕분에 어떻게 이런 문제를 일으키는 스크립트를 식별 할 수 있을까요? body 태그의 하위 트리 수정을 중단하도록 크롬 관리자를 설정했지만 jQuery에서만 중단됩니다. – Holly

+0

안녕하세요. 불행히도, 간단하지만 쉬운 것은 내 마음에 오는 것이 아니라 DOM (innerHTML, textContent 등)을 수정하는 "무차별 대항"검색입니다. 또는 많은 양의 스크립트를로드하는 경우 하나씩 문제를 해결할 수 있도록 스크립트를 하나씩 비활성화 해보십시오. – Shomz

답변

1

감사합니다.

<!-- END GOOGLE ANALYTICS CODE --> 
c<script type="text/javascript">//<![CDATA[ 
     var Translator = new Translate([]); 
     //]]></script> 

공지 사항이 스크립트 태그 앞에 C : 페이지 소스를 검토 한 후, 당신은 헤더 영역에 추가 C 문자가?

+0

감사합니다 백만, 그게되어야합니다 :) – Holly

1

Benny Lin의 매우 유용한 답변을 지원합니다.

Google Analytics 코드가 길잃은 문자 'c'가 들어있는 템플릿 파일에서로드되는 중 무슨 일이 발생 했습니까? 이 템플릿은 Magento 관리자 설정에서는 사용할 수 없지만 프로덕션에서는 사용할 수 없기 때문에 로컬 시스템에서이 값을 볼 수 있습니다.

이 문제는 dev 도구 검사기의 <body> 태그 내에 표시되지 않는 문자가있는 경우 표시 소스 페이지가 아니라 <head> 섹션에 있기 때문에 표시 될 수 있습니다. 브라우저는 렌더링 할 때 <head> 섹션의 형식이 잘못된 모든 HTML을 <body> 섹션으로 푸시하는 것처럼 보입니다. 당신은 크롬 브라우저에서 아래의 HTML을 열면

예를 들어 당신이 무슨 뜻인지 볼 수 있습니다 : 또한

<!DOCTYPE html> 
<html> 
<head> 
c<title>Title of the document in head</title> 
<script type="text/javascript"> 
    var test = "test"; 
</script> 
</head> 

<body> 
The body of the document...... 
</body> 

</html> 

을 우리가 부유 편지를 검색하는 동안, 우리는 자바 스크립트 아래에 그것을 제거하기 위해 유능했다 XPath 표현식을 사용하여 DOM에서 문제가되는 XML 노드를 대상으로하고 해당 노드 만 제거합니다.

<script type="text/javascript"> 
    function _x(STR_XPATH) { 
     var xresult = document.evaluate(STR_XPATH, document, null, XPathResult.ANY_TYPE, null); 
     var xnodes = []; 
     var xres; 
     while (xres = xresult.iterateNext()) { 
      xnodes.push(xres); 
     }  
     return xnodes; 
    } 
    jQuery(_x('//html/body/text()[contains(.,"c")]')).remove(); 
</script> 
관련 문제