如何使用Ajax将页面带入我的站点,然后等待,直到它完全加载脚本和所有

How to use Ajax to bring a page into my site then wait until it is fully loaded scripts and all

本文关键字:加载 脚本 等待 然后 Ajax 何使用 站点 我的      更新时间:2023-09-26

我有一个将页面拉入动态界面的站点。目前,主页要求任何javascript外部页面将需要加载与主页。外部页面的大多数javascript都是在页面被拉入时构建的对象,但是首先,这会导致问题。

由于某些原因,这对我来说有点难以解释,所以这里有一个简单的过程。

1。请求一个页面被拉入

2。根据传递给函数的变量创建一个特定对象,该对象将与来自页面的物理html相关联(这是外部Javascript)

3。加载页面到对象框架

该流程要求外部javascript附加到主页而不是被拉入的页面。

我想切换步骤2和3,但我假设我需要一种方法来知道页面及其所有脚本在尝试创建指定对象之前已经完全加载,但我不知道如何做到这一点。

我正在使用jQuery,希望这可以在没有插件的情况下完成,但如果需要的话,那就这样吧。

感谢

好问题。这些页面都是我们现在建立的本地页面,所以我们知道会发生什么。此外,页面只是加载到基本的div结构。

具体来说,主页发出一个获取页面的请求。该页面以字符串的形式返回,然后粘贴到主页面的div元素中。我想这些页面更像是碎片。但它们可以相当复杂,需要一点javascript,也可以根本不使用javascript。

外部javascript通常会通过script标签添加,而不是内联的。

由于页面的动态性,我们不使用IFRAME's,它们会导致模块的移动问题

如果你正在使用iframe,那么我想你正在改变它的src属性。要在iframe加载完成时获得警报,您应该在iframe的页面上包含一个脚本:

<script>
    $(window).load(function() {
        alert("All Done");
    });
</script>

如果您只是通过AJAX请求页面的字符串版本并填充div,则需要一些额外的JavaScript来检测这些动态加载的脚本文件何时完成下载到客户端。

我会访问这个链接,让你开始。

Nick和Mic的解决方案的组合。

在IFRAME页面中,您需要一种方法来确定内容何时完成加载或准备就绪,然后提醒您的主页:

<script>
    $(function() {
        parent.frameReady();
    });
</script>

在你的主页中,你可以从你的IFRAMEs中编写钩子代码:

<script>
    function frameReady() {
        // attach custom js to iframe here
    }
</script>