2

.ajaxを介してjquery-uiダイアログにコンテンツを読み込んでいます。これはすべて正常に機能していますが、ダイアログに埋め込むためのOpenX広告が表示され、その方法がわかりません。私はajax経由で入ってくるとすべてのスクリプトが削除されることを知っています。また、$。getScriptを使用してダイアログで使用する.jsファイルをロードする方法を知っていますが、私が持っているOpenX広告スクリプトはdocument.writeを使用しているので、ページ上の目的の位置にインラインで埋め込まれることを期待しています。
以下のように、メインコンテンツのajax成功時にエスケープされたスクリプト文字列をdivに追加しようとしましたが、これにより、ページが広告のみのページにリダイレクトされます。以下に示す試み:

$("#" + idHelpPage).find(".adScript").append("<script type='text/javascript'>var m3_u = (location.protocol=='https:'?'https://d1.openx.org/ajs.php':'http://d1.openx.org/ajs.php');var m3_r = ... etc etc

私はjqueryで大丈夫ですが、javascriptはあまり得意ではありません、本当に助けていただければ幸いです!また、他のコードを見たい場合。

4

1 に答える 1

3

確かに、この質問はかなり前に尋ねられました。ただし、openX ajs.phpファイルはdocument.write()関数を返します。jQueryの$(document).ready()クラスメソッドを使用すると、現在のページが上書きされます。

document.write()は、ページの読み込み手順中に呼び出された場合にのみ、(現在のページを上書きせずに)正しく実行されます。

この障害を克服する方法は2つあり、AJAX(openXサーバーがWebサイトと同じURLドメインにある場合、またはPHP、ASPなどのサーバー側スクリプトがある場合)またはJSONP(openXの場合)を使用する必要があります。サーバーは別のドメインにあります)。

PHP、ASPなどでサーバーサイドスクリプトを設定して、AJAX / JSONPを使用してjQueryを呼び出し、そのサーバースクリプトをURLにロードして、ajsであるdocument.write()関数の内容を返す必要があります。 phpファイルが返されます。

于 2010-11-22T16:32:22.373 に答える