gpt4 book ai didi

javascript - 如果预期的跨域src是404,如何在iframe中加载默认页面?

转载 作者:行者123 更新时间:2023-12-03 07:48:43 24 4
gpt4 key购买 nike

我有一个托管在我的服务器上的 JavaScript 脚本,该脚本通过 <script src="http://myserver/myscript.js"> 添加到我未托管的网站中标签。当这些网站打开时,脚本将启动一个模式框,该模式框打开 IDO 托管在 iframe 中的页面。

我知道这听起来很可疑,但拥有这些网站的人正在为此付出代价。这确实是合法的。

对于给定的客户,我最多可以有 5 个不同的页面。查询字符串确定 iframe 中加载哪个页面。

我想包含一个默认页面(每个客户端都有不同的默认值)来加载,以防查询字符串变量与我为他们提供的任何页面不匹配。

我可以检查查询字符串中是否缺少变量,并在这种情况下打开默认值。但是如果 iframe 中加载的页面是 404 该怎么办?在这种情况下如何加载默认值?

我已经阅读了所有我能找到的与此相关的帖子。据我了解,跨域安全风险意味着 Javascript 不支持这一点。但有些帖子提到除了 Javascript 之外,可能还有使用 PHP 来实现它的方法。有哪些解决方法?

我无法在外部站点上包含任何库。我只能放单<script>外部网站上的标签。

我对所有内容都使用简单的普通 JavaScript(因为我无法在外部站点上包含 jquery 库),并且现在所有内容都在一个文件中。

如果我要使用其他文件,我不确定这些文件如何一起工作。我也需要这方面的帮助。

最佳答案

我相信您正在寻找 PostMessage API:

https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage

这将允许在外部 Javascript(您的客户附加到其网站的脚本)和您(拥有的)iFrame 内容之间传递消息。 iFrame 内的脚本可以监听上面发布的消息,反之亦然。

通过此功能,您可以将客户端脚本设置为监听来自 iFrame 的消息,例如 {loaded: true},并在发生(或未发生)时采取操作。如果 iFrame 在设定的秒数内没有回复客户端脚本的请求,那么您可以合理地相信页面 404'd。

关于javascript - 如果预期的跨域src是404,如何在iframe中加载默认页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35095910/

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