2

どういうわけか、IE9(IE8も信じていますが、確かではありません)が注入しているようです

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

周囲の文脈に関係なく、私のコンテンツの途中で。これは、属性の途中またはJavaScriptの途中で追加され、HTMLの形式が正しくなくなり、あらゆる種類の問題が発生することを意味します。

これは、プラグインが異なる複数のコンピューターで発生するため、マシン固有ではありません。また、一貫性もありません。問題のあるスクリプトが挿入される場所はさまざまであり、問​​題のあるスクリプトはさまざまです。場合によっては、問題なく複数のページが読み込まれ、その後、壊れたHTMLが表示されることがあります。

開発者ツール

私のページはかなりの量のJSを使用していますが、クレイジーなことは何もありません。現在、jQuery、Googleマップ、ブートストラップ、Googleタグマネージャーを使用しており、Twitter、Google +、FacebookのIframeに独自の小さなJSスニペットを読み込んでいます。そのため、いくつかの非同期コールバックが発生していますが、これがブラウザのDOMのレンダリング方法や、プラグインコードの挿入を決定するタイミングに干渉するとは思われません。

http://www.rew.ca/properties/search/839721を十分な回数リロードすると、問題が発生する可能性があります。ページの一番下までスクロールすると、生のJSONが表示されるか、ページの中央にランダムなHTMLスニペットが表示されることがあります(タグが一致しないため)。

これらのスクリプトが任意に挿入される理由と、それを回避する方法についてのアイデアはありますか?

ありがとう

[更新]HTMLコンテンツの途中に含まれるスクリプトタグの別の例を次に示します。 ここに画像の説明を入力してください

4

1 に答える 1

3

私の意見では、問題はhttp://cn.clickable.net/js/cct.jsスクリプト、特にクラスのIsIEPluginメソッドにあります。__cct_tracker

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」は「ClickableConversionTracking」の略だと思いますが(よ​​くわかりませんが)、なんらかのトラッキングコードである必要があります。
さらに調査した結果、「cct.js」スクリプトはGoogle Tag Manager(GTM)スクリプトhttp://www.googletagmanager.com/gtm.jsによって読み込まれることがわかりました。
したがって、私が間違っていなければ、HTMLページからGTMコードスニペットを削除することで、問題を解決できるはずです。
GTM JavaScriptコードによって動的に挿入されたVBSCRIPTコードが実行されないことがあるようですが、私にはよくわからないので、理由を聞かないでください。

于 2012-12-18T21:04:30.747 に答える