2

これは頭​​を悩ませ、一日中追いかけています。サイトでスクリプトを呼び出してコードを挿入する広告サーバーがあります。

たとえば、iframe で呼び出される Adserver ページ:

<html>
<head><title></title></head>
<body>
<script src="http://adserver/ad?s=728x90"></script>
</body>
</html>

上記のスクリプト呼び出しによって返される JavaScript:

document.write('<script type=\'text/javascript\' src=\'http://partner.googleadservices.com/gampad/google_service.js\'>\n');
document.write('</script>\n');
document.write('<script type=\'text/javascript\'>\n');
document.write('GS_googleAddAdSenseService("ca-pub-xxxxxxxxxxxxxxxxxxx");\n');
document.write('GS_googleEnableAllServices();\n');
document.write('</script>\n');
document.write('<script type=\'text/javascript\'>\n');
document.write('GA_googleUseIframeRendering();\n');
document.write('</script>\n');
document.write('\n');
document.write('<script type=\'text/javascript\'>\n');
document.write('GA_googleFillSlotWithSize("ca-pub-xxxxxxxxxxxxxxxxxx", "Global_728x90", 728, 90);\n');
document.write('</script>\n');

これにより、Google Ad Manager 広告がページに挿入されます。問題は、コードが IE 7 および 8 では機能しないことですが、Chrome、Firefox、Safari などでは正常に機能します。

IE によって返される「エラー」は「Object Expected」であり、IE の「Developer tools」で実行しても役に立ちません。

私はそれを機能させるためにたくさんのことを試しました。

GS_ または GA_ 関数が実行されるたびにエラーが発生しているように見えるので、IE が外部スクリプトによるページへの書き込みを停止しようとしていると思われますか?

エラーが発生している理由や解決策を誰かが明らかにすることはできますか?

ありがとう

4

2 に答える 2

0

Chrome、Firefox、Safariなどがより高速なブラウザだからだと思います。彼らは http://partner.googleadservices.com/gampad/google_service.jsそれに依存するスクリプトを実行する前にファイルをダウンロードしていますが、IEはその時点でまだファイルをプルしています。おそらく、そのjsファイルの内容を自分のjsのどこかに含めることができますか?

于 2011-05-19T15:02:16.903 に答える
0

この質問を投稿して以来、私はこれをたくさん見てきました。私が理解している限りでは、これは IE にのみ存在する競合状態の問題です。残念ながら、それを回避する方法はありません。

于 2012-01-03T09:12:25.247 に答える