1

データベースに新しい広告を追加できるように、自分のWebサイトに小さな広告システムを構築しています。ほとんどの広告は画像で構成されており、画像をinnerhtmlとしてdivに書き込むだけです。これは正常に機能します。ただし、一部の広告は、広告が必要な場所に配置する必要があるスクリプトタグのみで構成されています。.NETのコードビハインドまたはajax呼び出しから動的にこれを行う必要があるため、これにはいくつかの問題があります。次のようにdivのinnerhtmlを設定するだけです。

<div id="asdf" runat="server">
    <script type="text/javascript" src="xxxxx"></script>
</div>

...実行されないため、機能しません。ページの読み込み時にコードビハインドで設定したか、ajax呼び出しで設定したかは関係ありません。

どういうわけかeval()を呼び出すことができるかもしれませんが、これは、スクリプトが正しく配置された場合に、スクリプトが希望する場所に正確に配置されることを保証するものではありません。

何か案は?これは新しい問題ではありません。多くの広告ネットワークには、画像などの代わりにスクリプトタグがあります。

編集: javascriptファイルは別のドメインにあります。src属性をアラートのみを含むローカルファイルに設定すると、すべてが機能します。これをドメイン間で実現することはできませんか?

4

2 に答える 2

1

あなたはこれを試すことができます:

var script = document.createElement('script');
script.src = 'xxxxxx';
script.type = 'text/javascript';
var div = document.getElementById('asdf');
div.appendChild(script);
于 2013-01-19T11:16:48.367 に答える
0

次のように、ファイルを追加するソースがわかっている場合は、スクリプトタグを動的に追加できます。

    // Get head object from DOM.
var head_obj = document.getElementsByTagName('HEAD').item(0);

// Create script object.
var script_obj  = document.createElement( 'script' );
script_obj.type = 'text/javascript';
script_obj.src  = File_Path;

// Define functions to be called on script load and load body.
script_obj.onload = onLoadFunc;

// Appendnd script object to the head object.
head_obj.appendChild( script_obj );

お役に立てば幸い

于 2013-01-19T11:14:00.097 に答える