ตัวอักษรในเครื่องหมายคำพูดปรากฏหลังแท็กเนื้อหา

เราเพิ่งเปิดตัวไซต์ Magento ใหม่ของเรา และตัวอักษร 'c' ปรากฏในเครื่องหมายคำพูดทันทีหลังแท็ก ก่อนหน้านี้มันไม่แสดงบนเครื่องของฉันหรือบนไซต์ QA ของเรา ฉันได้ตรวจสอบไฟล์เทมเพลตแล้ว แต่ก็ไม่มีเช่นกัน ฉันเกือบจะแน่ใจว่าจะไม่ใช่ปัญหาเกี่ยวกับโค้ด เนื่องจากเรามีโค้ดเดียวกันที่ทำงานอยู่ในเครื่องและบนไซต์ QA ของเราภายใต้การควบคุมเวอร์ชันด้วย GIT

เราได้ล้างแคชแล้วและฉันได้ลองตรวจสอบเพื่อดูว่า JavaScript แทรกแคชด้วยเครื่องมือ dev ของ Chrome หรือไม่ แต่ไม่พบอะไรเลย

น่าแปลกที่ 'c' ไม่ได้อยู่ในเอกสารแหล่งที่มาของมุมมอง แต่ฉันสามารถดูได้ด้วยตัวตรวจสอบ Chrome

ป้อนคำอธิบายรูปภาพที่นี่

ฉันไม่คิดว่ามันจะมาจาก Magento CMS Pages/Blocks เพราะมันโหลดทันทีหลังแท็ก


person Holly    schedule 05.11.2014    source แหล่งที่มา
comment
หากไม่อยู่ในแหล่งที่มาของหน้า แสดงว่า JS เพิ่มไว้อย่างแน่นอน มีอะไรอย่างอื่นที่ควรจะอยู่ที่นั่นแทนหรือไม่? ฉันคิดว่ามันอาจจะเป็นอาร์เรย์แทนที่ด้วยสตริง (var[0]) ดังนั้นคุณจะได้อักขระตัวแรกของอะไรก็ได้   -  person Shomz    schedule 05.11.2014
comment
ขอบคุณ @Shomz มีความคิดใดที่ฉันจะแก้ไขข้อบกพร่องเพื่อระบุสคริปต์ที่ทำให้เกิดสิ่งนี้ได้อย่างไร ฉันพยายามตั้งค่าตัวตรวจสอบ Chrome ให้หยุดการแก้ไขทรีย่อยของแท็ก body แต่จะพังใน jQuery เท่านั้น   -  person Holly    schedule 05.11.2014
comment
ด้วยความยินดี. น่าเสียดายที่ไม่มีอะไรง่าย/ง่ายอยู่ในใจของฉัน แต่การค้นหาอย่างดุเดือดสำหรับสิ่งใดก็ตามที่ปรับเปลี่ยน DOM (HTML ภายใน, เนื้อหาข้อความ ฯลฯ ) หรือหากคุณมีการโหลดสคริปต์เป็นจำนวนมาก ให้ลองปิดการใช้งานทีละสคริปต์ เพื่อที่คุณจะได้แคบลงว่าปัญหามาจากสคริปต์ใด   -  person Shomz    schedule 06.11.2014
comment
คุณมี url ตัวอย่างที่เราสามารถดูได้ไหม?   -  person Benny Lin    schedule 06.11.2014
comment
@Shomz ฉันปิดการใช้งานจาวาสคริปต์ใน Chrome และ c ยังคงปรากฏอยู่   -  person Holly    schedule 06.11.2014


คำตอบ (2)


ขอบคุณสำหรับลิงค์ หลังจากตรวจสอบแหล่งที่มาของหน้าแล้ว คุณจะมีอักขระ C พิเศษในบริเวณส่วนหัว:

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

สังเกตว่า c ก่อนแท็กสคริปต์?

person Benny Lin    schedule 05.11.2014

สนับสนุนคำตอบที่เป็นประโยชน์ของ Benny Lin

สิ่งที่เกิดขึ้นคือเรามีการโหลดโค้ด Google Analytics จากไฟล์เทมเพลตซึ่งมีตัวอักษรจรจัด 'c' เราเห็นสิ่งนี้ได้ในเครื่องของเรา เนื่องจากเทมเพลตนี้ถูกปิดใช้งานในการตั้งค่าผู้ดูแลระบบ Magento แต่ไม่ใช่ในการใช้งานจริง

ดูเหมือนว่าปัญหานี้จะแสดงให้เห็นว่าเมื่อมีตัวอักษรจรจัดปรากฏขึ้นภายในแท็ก <body> บนตัวตรวจสอบเครื่องมือ dev ของคุณ และไม่ใช่หน้าแหล่งที่มาของการดู อาจเป็นเพราะอยู่ในส่วน <head> ดูเหมือนว่าเบราว์เซอร์จะดัน html ที่มีรูปแบบไม่ดีทั้งหมดจากส่วน <head> ไปยังส่วน <body> เมื่อแสดงผล

ตัวอย่างเช่น หากคุณเปิด html ด้านล่างในเบราว์เซอร์ Chrome คุณจะเห็นว่าฉันหมายถึงอะไร:

<!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>

นอกจากนี้ ในขณะที่เรากำลังค้นหาตัวอักษรจรจัด เราก็สามารถลบมันออกด้วย JavaScript ด้านล่างที่กำหนดเป้าหมายโหนด XML ที่ละเมิดใน DOM ด้วยนิพจน์ XPath และลบเฉพาะโหนดนั้นเท่านั้น

<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> 
person Holly    schedule 06.11.2014