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() 才能正确执行(不会覆盖当前页面)。

有两种方法可以克服这个障碍,这需要使用 AJAX(如果您的 openX 服务器与您的网站在同一个 URL 域上,或者如果您有服务器端脚本,例如 PHP、ASP 等)或 JSONP(如果您的 openX服务器在不同的域上)。

您必须使用 PHP、ASP 等设置服务器端脚本,以使用 AJAX/JSONP 进行 jQuery 调用,并将该服务器脚本加载到 URL 中并返回 ajs 的 document.write() 函数的内容。 php 文件返回。

于 2010-11-22T16:32:22.373 回答