Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Ajax将页面引入我的站点,然后等待它完全加载脚本和所有内容_Javascript_Ajax_Jquery - Fatal编程技术网

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

Javascript 如何使用Ajax将页面引入我的站点,然后等待它完全加载脚本和所有内容,javascript,ajax,jquery,Javascript,Ajax,Jquery,我有一个网站,将页面拉入动态界面。目前,主页要求外部页面所需的任何javascript都与主页一起加载。外部页面拥有的大多数javascript都是在页面被拉入时构建的对象,但首先会导致问题 由于某些原因,我有点难以解释,所以这里有一个简单的过程介绍 1.请求将页面拉入 2.根据传递给函数的变量创建一个特定对象,该对象将与来自页面的物理html相关联(这是外部Javascript) 3.将页面加载到对象框架中 此流要求将外部javascript附加到主页面,而不是被拉入的页面 我想切换第2步和第

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

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

1.请求将页面拉入

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

3.将页面加载到对象框架中

此流要求将外部javascript附加到主页面,而不是被拉入的页面

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

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

谢谢

更新

好问题。因此,这些页面是我们在此时构建的本地页面,因此我们知道将要发生什么。此外,这些页面被加载到基本的div结构中

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

外部javascript通常通过脚本标记添加,而不是内联的


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

如果您使用的是IFRAME,那么我认为您正在更改它的src属性。要在iframe加载完成时获取警报,应在iframe内的页面上包含脚本:

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

$(窗口)。加载(函数(){
警报(“全部完成”);
});
如果您只是通过AJAX请求页面的字符串版本并填充div,那么您需要一些额外的JavaScript来检测这些动态加载的脚本文件何时完成下载到客户端


我将访问此网站,让您开始。

Nick和Mic的解决方案的组合

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

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

$(函数(){
parent.frameReady();
});
在主页面中,您可以从iFrame在钩子中编码:

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

函数frameReady(){
//在此处将自定义js附加到iframe
}

是使用脚本将外部js嵌入到页面中,还是使用内联js(即
vs
一些js
)您能否提供一些实现的详细信息,特别是如何将这些外部页面拉入以及拉入到什么程度?是iframe吗?您是否控制外部页面标记?您是否确实知道如果没有外部页面,外部页面会是什么样子,或者它们可能是任何HTML文档?您是否尝试使用IFRAME加载页面,并为其设置
onload
事件,以触发导入到父页面?