2012-12-11 4 views
2

의 원인, 렌더링의 중간에 VBScript를 태그를 주입, 내 콘텐츠의 중간에는 IE는 그것이 IE9 것 같아, 어떤 이유로 잘못된 HTML

<SCRIPT LANGUAGE=VBScript>on error resume next pluginFound = IsObject(CreateObject("DIFFERENT PLUGIN EVERY TIME")) 

를 주입한다 (I는 IE8도하지만 확실하지가 생각) 주변 상황에 상관없이. 이는 애트리뷰트의 중간이나 일부 자바 스크립트 중간에 추가되어 HTML이 변형되어 모든 종류의 문제가 발생한다는 것을 의미합니다.

다른 플러그인이있는 여러 컴퓨터에서 발생하기 때문에 특정 컴퓨터가 아닙니다. 또한 일관성이 없습니다. 문제가되는 스크립트가 삽입되는 위치가 다양하고 문제가되는 스크립트가 다양합니다. 때로는 문제없이 여러 페이지로드가 발생하고 손상된 HTML이 표시됩니다.

Developer Tools

내 페이지에는 JS의 공정한 금액, 그러나 미친 아무것도를 사용하고 있습니다. 현재 jQuery, Google지도, 부트 스트랩, Google 태그 관리자를 사용하고 있으며 Twitter, Google+, Facebook Iframe을 자체 JS 스 니펫으로로드하고 있습니다. 따라서 일부 비동기 콜백이 발생하지만 브라우저에서 DOM을 렌더링하는 방법과 플러그인 코드를 삽입하기로 결정할 때 방해받는 것이라고 생각하지 않습니다.

http://www.rew.ca/properties/search/839721 번을 다시로드하면 문제가 발생할 수 있습니다. 페이지 하단으로 스크롤하면 원시 JSON이 표시되거나 일부 태그가 일치하지 않아 일부 HTML 코드가 페이지 중간에 표시되는 경우가 있습니다.

이 스크립트가 임의로 주입되는 이유와 그 해결 방법에 대한 아이디어가 있습니까?

감사

[업데이트] 여기 HTML 내용의 중간에 포함하기 스크립트 태그의 또 다른 예입니다 : 제 생각에는 enter image description here

+0

나는 이것을 상쾌하게 표현할 수 없다. IE 용 플러그인을 사용할 수 없도록 설정하여 사이트를 보았습니까? –

+0

Flash 및 Adobe PDF 링크 도우미를 추가 했어도 가상 컴퓨터의 W7에있는 IE9에서 재현 할 수 없습니다. 그러나 몇몇 다른 기계 (기본 설치가있는 것, "공장"플러그인 만있는 것)에서는 여전히 발생합니다. 사용 중지 된 플러그인에서 발생하는지 확실하지 않지만 시도해 보겠습니다.그러나 사용자에게 내 사이트를 방문하기위한 플러그인을 사용 중지하도록 요청할 수는 없습니다. –

답변

3

, 문제가 http://cn.clickable.net/js/cct.js 스크립트에있다, 특히에 __cct_tracker 클래스의 IsIEPlugin 방법 :

this.IsIEPlugin = function (e) { 
    var t = !1; 
    return document.write('<SCRIPT LANGUAGE=VBScript>\n on error resume next \n pluginFound = IsObject(CreateObject("' + e + '")) </SCR' + "IPT>\n"), t ? 1 : 0 
} 

이 방법 다른 인수와 함께, 여러 번 호출됩니다

this.pixelRequestParams.cctDir = this.IsIEPlugin("SWCtl.SWCtl.1"), 
this.pixelRequestParams.cctFlashPlugin = this.IsIEPlugin("ShockwaveFlash.ShockwaveFlash.1"); 
if (this.IsIEPlugin("PDF.PdfCtrl.1") == 1 || 
    this.IsIEPlugin("PDF.PdfCtrl.5") == 1 || 
    this.IsIEPlugin("PDF.PdfCtrl.6") == 1) 
    this.pixelRequestParams.cctPdf = 1; 
this.pixelRequestParams.cctQuickTime = this.IsIEPlugin("Quicktime.Quicktime"), 
this.pixelRequestParams.cctRealPlayer = this.IsIEPlugin("rmocx.RealPlayer G2 Control.1"), 
this.pixelRequestParams.cctWmPlayer = this.IsIEPlugin("wmplayer.ocx") 

가 나는 가정 (심지어 내가 확실하지 않다)이 추적 코드의 일종해야하므로 "CCT는", "클릭 가능한 전환 추적"의 약자있다.
추가 조사가 끝나면 "cct.js"스크립트가 Google Tag Manager (GTM) 스크립트 http://www.googletagmanager.com/gtm.js에 의해로드되는 것으로 확인되었습니다.
HTML 페이지에서 GTM 코드 스 니펫을 제거하여 잘못하지 않았다면 문제를 해결할 수 있습니다.
GTM JavaScript 코드에 의해 동적으로 삽입 된 VBSCRIPT 코드가 실행되지 않는 것 같지만, 실제로 알지 못하는 이유는 묻지 않습니다.

+0

니스 찾기! 실제로 GTM과 관련이 있다는 결론에 도달했습니다 (페이지에서 코드 조각을 제거하는 과정을 거쳐 결과물과 같이 상세하지는 않습니다). 이상한 것은 그것이 일어나는 것을 멈추었거나, 최소한 주파수가 줄어든 것으로 보인다는 것입니다. 누군가 GTM 구성 측면에서 뭔가 변경된 것인지 확신 할 수 없습니다. –

관련 문제