私はjavascriptにかなり慣れていないので、おそらく私の問題があります。サイトのウィジェット内で発生する AdWords コンバージョンを追跡しようとしています。ユーザーがフォームに入力すると、ウィジェットからの結果がページを更新せずに同じ div に公開されます。私が抱えている問題は、Google のコード (以下に示す) の両方のスクリプト要素を appendChild (または jQuery で追加) しようとすると、ページが 302 リダイレクトされて空白の Google ページになることです (または、少なくともそれが FireBug によってどのように見えるか)。 . フォームの結果に対するコールバック メソッドを提供できます。そこに AdWords トラッキング コードを挿入しようとしています。参考までに、これは Google が提供するコードです。
<script type="text/javascript">
/* <![CDATA[ */
var google_conversion_id = 993834405;
var google_conversion_language = "en";
var google_conversion_format = "3";
var google_conversion_color = "ffffff";
var google_conversion_label = "bSpUCOP9iAIQpevy2QM";
/* ]]> */
</script>
<script type="text/javascript" src="http://www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="http://www.googleadservices.com/pagead/conversion/993834405/?label=bSpUCOP9iAIQpevy2QM&guid=ON&script=0"/>
</div>
</noscript>
かなり標準的なもの。だから、私がしようとしているのは、(提供されている) コールバック メソッドを使用して、これを結果ページに挿入することです。率直に言って、js または jQuery を使用してこのコードを挿入しようとしても (元のページの読み込み時またはコールバックのいずれかで) リダイレクトされるため、コールバック ビットは無関係かもしれませんが、それが理由で、単にページのコード。
これを行うためにさまざまな方法を試しましたが、現在私が持っている方法は次のとおりです(ずさんなことを許してください。現時点でこれをハックしようとしているだけです!):
function matchResultsCallback(data){
var scriptTag = document.createElement('script');
scriptTag.type = "text/javascript";
scriptTag.text = scriptTag.text + "/* <![CDATA[ */\n";
scriptTag.text = scriptTag.text + "var google_conversion_id \= 993834405\;\n";
scriptTag.text = scriptTag.text + "var google_conversion_language \= \"en\"\;\n";
scriptTag.text = scriptTag.text + "var google_conversion_format \= \"3\"\;\n";
scriptTag.text = scriptTag.text + "var google_conversion_color \= \"ffffff\"\;\n";
scriptTag.text = scriptTag.text + "var google_conversion_label \= \"bSpUCOP9iAIQpevy2QM\"\;\n";
scriptTag.text = scriptTag.text + "/* ]]> */\n";
$('body').append(scriptTag);
$('body').append("<script type\=\"text\/javascript\" src\=\"http://www.googleadservices.com/pagead/conversion.js\" />");
//I have also tried this bit above using the same method as 'scriptTag' with no luck, this is just the most recent iteration.
var scriptTag2 = document.createElement('noscript');
var imgTag = document.createElement('img');
imgTag.height = 1;
imgTag.width = 1;
imgTag.border = 0;
imgTag.src = "http://www.googleadservices.com/pagead/conversion/993834405/?label=bSpUCOP9iAIQpevy2QM&guid=ON&script=0";
$('body').append(scriptTag2);
$('noscript').append(imgTag);
}
本当に奇妙なのは、スクリプト タグの 1 つだけを挿入すると (どちらでも構いません)、リダイレクトされないことです。両方を挿入しようとしたときにのみリダイレクトされます。
また、最初のスクリプトタグを元のページコードに入れてみました (どこにも呼び出しを行っていないため、変数を設定しているだけです)。conversions.js ファイルを挿入するだけで、リダイレクトが行われます。
関連する場合、私は Firefox 3.6.13 を使用しており、含まれているコードを jQuery 1.3 と 1.5 の両方で試しました (v1.3 を使用していることに気付いた後)。
私は何かが欠けていることを知っています!助言がありますか?