gpt4 book ai didi

javascript - 插页式广告(异步广告),无需在网站上放置任何代码

转载 作者:行者123 更新时间:2023-12-02 14:24:53 25 4
gpt4 key购买 nike

我正在尝试创建一个抛出灯箱的广告,但广告本身将被放置在 iframe 内和/或注入(inject)到网站(不是同一域)。有些网站会将其放在 iframe 中,有些则按原样放在网站上。我无法控制要放置广告的网站。

我知道我可以使用 postMessage() 从 iframe 内发送数据,并使用接收到的数据在父窗口上执行命令,但我无法在父窗口上放置任何代码。是否有一个通用的解决方案适用于这两种场景?我想将一些内容推送到父窗口。

这段代码完全符合我的要求,但我不知道它是如何做到的:

<script src="http://bs.serving-sys.com/BurstingPipe/adServer.bs?cn=rsb&c=28&pli=17085731&PluID=0&w=1&h=1&ord=[timestamp]&ucm=true&ncu=$$%c$$"></script>
<noscript>
<a href="%chttp%3A//bs.serving-sys.com/BurstingPipe/adServer.bs%3Fcn%3Dbrd%26FlightID%3D17085731%26Page%3D%26PluID%3D0%26Pos%3D67849382" target="_blank"><img src="%%VIEW_URL_ESC%%.http://bs.serving-sys.com/BurstingPipe/adServer.bs?cn=bsr&FlightID=17085731&Page=&PluID=0&Pos=67849382" border=0 width=1 height=1></a>
</noscript>

最佳答案

如果代码位于框架/iframe 内,并且您无权访问父框架/窗口,并且父框架/窗口没有通过 postMessage() 设置 API 来加载弹出窗口/lightbox 那么答案是否定的。

您可以执行此操作的唯一时间是使用友好的 iFrame(与父框架/窗口相同的域)或完成解决方法以允许访问父框架/窗口。请注意,即使完成此操作并且您访问并更改了父级,您也可能会激怒网站的发布者或所有者,如果他们没有预料到您要添加的内容,或者您​​有意或无意地更改了他们的网站或样式表,则框架会打开。以任何方式或注入(inject)可能是恶意的脚本。如果您反复这样做,您也可能会被您发送广告所通过的任何网络禁止。

如果使用 SafeFrame,您将无法执行此操作。 SafeFrame 旨在防止广告商更改顶级窗口/框架,如果广告是可展开的广告类型,但 SafeFrame API 中没有弹出窗口,它会提供 API 来展开广告。

如果您想测试是否有权访问父/顶部框架/窗口,您可以尝试:

对于顶部框架/窗口:

try { window.top.location.href } catch(e) {
// Exception was thrown meaning you do not have access to the top window/frame!
}

对于父(可能不是最顶层)框架/窗口:

try { window.parent.location.href } catch(e) {
// Exception was thrown meaning you do not have access to the parent window/frame!
}

关于javascript - 插页式广告(异步广告),无需在网站上放置任何代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38356027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com