首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用iframe和ajax来包含外部页面的内容有什么区别?

使用iframe和ajax来包含外部页面的内容有什么区别?
EN

Stack Overflow用户
提问于 2008-12-19 16:35:50
回答 3查看 6.1K关注 0票数 3

我一直在读这方面的文章,似乎如果你使用ajax,你只能引入驻留在同一个域中的内容,而使用iframe,你可以引入来自任何域的内容。真的是这样吗?还有什么不同之处?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-12-19 16:42:29

请记住,这是两种完全不同的技术。

一个(I)框架真正将一个完整的HTML页面加载到浏览器中。无论页面是在同一个域上还是在另一个域上,对于纯粹的查看,都无关紧要。

Ajax仅描述了一种系统,以便于JavaScript与生成JavaScript调用的服务器进行通信(并且具有跨浏览器的当前安全限制,仅限于)。

(I)框架技术从任何给定的URL加载并呈现完整的HTML页面。使用JavaScript从其他域访问其他文档的某些安全限制仍然适用。

使用Ajax,它只意味着使用纯粹的JavaScript与原始服务器通信(发送一些数据),并且通常会得到一些数据。在JavaScript中。这些数据是什么,以及您如何处理它,由您决定。是否将其插入到DOM (文档对象模型)、交换部件或加载新页面由您决定。

在某种程度上,你拥有你想要的所有自由。您可以在页面上有一个(I)框架,仍然进行Ajax调用,并决定将另一个URL加载到(I)框架中。或者使用Ajax返回值在(I)框架内动态生成新的HTML。或外部,在另一个文档中。

在这种情况下应用的安全限制称为“同源策略”。

票数 13
EN

Stack Overflow用户

发布于 2008-12-19 16:47:11

简单地说,iframe就像一个普通的框架,但是它不会将浏览器窗口分成几个部分,它直接位于页面内部,并且受到滚动条的影响。

另一方面,Ajax使用javascript对页面进行部分加载,允许从服务器加载少量数据,而无需执行完整的回发。例如,Youtube在你发布评论、投票、排队播放视频等时使用Ajax,这样你的视频就不会被完整的页面回发中断或重新启动。

票数 1
EN

Stack Overflow用户

发布于 2016-11-23 06:01:06

除了其他人提到的这些区别之外,还有其他的区别。iframe加载整个html/php页面,无论它是来自自己的服务器还是其他外部服务器。通常,它有一个新的<html><head><body>标签。Ajax只加载html/php页面的一部分。

此外,Ajax从父文件中提取CSS (甚至可能是javascript代码),但是对于Iframe,它不能提取同样的内容。

例如,这是主文件编码。

代码语言:javascript
运行
AI代码解释
复制
<!doctype html>
<html>
<head>
<style>
    .gappu {background-color:black;color:red;}
</style>
<meta charset="utf-8">
    <script src="../AllJqueries/jquery-1.11.3.min.js"></script> <!-- Use your own jQuery file -->
    <script>
        <!--
        $(document).ready(function(){
            $.ajax({url:"slave1.php?bare=true", success:function(data){
                $(".myDomain").html(data);
            }});
        }); /* End of Main Jquery */
        //-->
    </script>
<title>Ajax vs Iframe</title>
</head>

<body>
    <div class="myDomain"></div>
    <div>Iframe below</div>
    <iframe width="100%" height="500px" src="slave1.php"></iframe>
</body>
</html>

现在,我们还有另一个文件,名为lave1.php

代码语言:javascript
运行
AI代码解释
复制
<?php
if(isset($_GET['bare'])) $bare = $_GET['bare'];
else $bare = false;
if(!$bare):
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<style>
    .gappu {background-color:blue;color:yellow;}
</style>
<!-- You can remove the above style later, and see the difference. The parent style will not apply for iframe -->
<title>Inside the Iframe</title>
</head>

<body>
<?php endif; ?>
    <div class="gappu">Hi, welcome to this demo</div>
<?php if(!$bare): ?>
</body>
</html>
<?php endif;

在Ajax调用的情况下,代码行css Hi,welcome to this demo将是黑色背景和红色,因为它是从父级借用的。但在iframe中,它将是蓝色背景和白色,这在lave1.php中定义。您可以从lave1.php中删除该样式,您将发现以iframe格式打印的纯文本。

希望这能有所帮助。干杯。Vijay Srinivas

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/382662

复制
相关文章
有同学问我:Fetch 和 Ajax 有什么区别?
自昨天发了《还在死磕 Ajax?那可就 out 了!》一文后,收到了一些大家的一些评论,评论都很走心,也很有深度。
编程三昧
2021/08/18
6190
有同学问我:Fetch 和 Ajax 有什么区别?
如何通过iframe调用其他页面的内容
  我们在建站的时候经常会在页面出现同样的内容,比如公司简介之类的,这些东西很长,会减低网页的原创程度,相似度太高,对SE不是很友好。这时我们可以考虑把这部分内容写成一个单独的简单页面,然后通过iframe进行调用。   举个栗子,http://www.mjeyes.com/special/fm/页面中,中间蓝底的图文经常出现,那我们就直接调用 <iframe style="border:none;" src="http://www.mjeyes.com/fm.html" width="100%" heig
ytkah
2018/03/05
2.1K0
使用Ajax建立的Server Push和Iframe建立的Comet
这里使用的例子就是一个在线CD销售页面,前台发起ajax请求,后台随机取一个数,从现在库中减去获得的随机数,然后返回给前台;
meteoric
2019/02/25
8590
使用Ajax建立的Server Push和Iframe建立的Comet
Python+selenium 自动化-切换窗口页签、切换iframe框架。确定页面是否包含iframe方法。
查看页签是否包含iframe页签。 原理:如果没有找到id为mainiframe的iframe页签就会抛出异常。
小蓝枣
2020/09/23
1.1K0
Django之基于iframe的ajax
那么伪造ajax的方式即为将向服务端发送请求返回的数据返回到iframe中,再使用js从iframe中的文档中取出数据使用。
py3study
2020/01/21
1.1K0
SpringDataA和Mybaits有什么区别,如何使用?
阿粉之前一直都是使用传统的SSM进行开发,也就我们所说的 Spring,SpringMVC,Mybatis,即使使用的SpringBoot,无非也就是这么集中,对于持久层框架的选择,也都是Mybaits,但是阿粉无意中发现,现在使用SpringDataJPA的公司也是非常的多的,所以,今天阿粉来讲一下这个SpringDataJPA.
Java极客技术
2022/12/04
9700
SpringDataA和Mybaits有什么区别,如何使用?
Python爬虫实战:抽象包含Ajax动态内容的网页数据
在爬虫获取网页数据时,我们经常会遇到一些网页使用Ajax技术加载动态内容的情况。这些动态内容可能包含了我们所需要的数据,但是传统的爬虫工具无法直接获取这些内容。因为传统的爬虫工具在获取网页数据时,只能获取到初始加载的静态内容,无法获取到通过Ajax技术加载动态内容。所以传统的爬虫工具只能模拟浏览器的基本行为,无法执行JavaScript代码来获取动态内容。因此我们需要使用一些技巧和工具来解决这个问题。
小白学大数据
2023/08/25
3460
iframe自适应高度_iframe根据内容自适应高度
首先需要给iframe设置一个id,不需要滚动条则加上scrolling=”no”
全栈程序员站长
2022/11/08
5.1K0
请求地址最后面的 “/” 加和不加到底有什么区别?
URL 是我们每天畅游在互联网世界中最最常见的东西了,对于普通用户来说,URL 就是一个字符串,比如 http://www.justdojava.com ,但是对于我们开发者而言,除了 URL,还有一个东西叫做 URI,很多人经常搞不清楚这两个概念,本文我们就从这个话题开始。
江南一点雨
2019/08/06
1.2K0
请求地址最后面的 “/” 加和不加到底有什么区别?
js获取iframe中的内容(iframe内嵌页面)
在父页面中定义函数,再到子页面中调用。 父页面parent.html function getFrameId(f){ var frames = document.getElementsByTagName(“iframe”); //获取父页面所有iframe for(i=0;i
全栈程序员站长
2022/08/01
24.9K0
js获取iframe中的内容(iframe内嵌页面)
lxparse:解析列表页链接和详情页内容
Github地址:https://github.com/lixi5338619/lxparse
李玺
2022/09/23
1.2K0
lxparse:解析列表页链接和详情页内容
Closeable和AutoCloseable有什么区别?
导读:我们知道,在java中jvm虚拟机会自动去调用gc(垃圾回收器)去回收堆中没有被引用的对象,至于什么时候回收,是不确定的,同时有些是用到其他资源,jvm也不会进行回收,类似Io流中的FileInputStream使用到了硬盘资源,垃圾回收器是不会去回收的,因此,必须手动关闭掉。我们进行手动的编写close()方法进行关闭,然而,每次这些写会造成代码冗余不优雅,JDK中对于释放资源有Closeable和AutoCloseable可以使用,以下为详解。
码农架构
2021/04/22
3.3K0
Closeable和AutoCloseable有什么区别?
kubernetes和docker有什么区别
本教程操作环境:linux5.9.8系统、docker-1.13.1版、Dell G3电脑。
码农编程进阶笔记
2023/03/23
2.1K0
kubernetes和docker有什么区别
蓝牙和WiFi有什么区别?
如果您拥有手机、笔记本电脑、计算机或任何其他现代电子设备,知道蓝牙和 WiFi 。
网络技术联盟站
2021/11/05
2.3K0
蓝牙和WiFi有什么区别?
OracleJDK和OpenJDK有什么区别?
Oracle JDK与OpenJDK里的JVM都是HotSpot VM。从源码层面说,两者基本上是同一个东西。
码农架构
2021/09/18
2K0
OracleJDK和OpenJDK有什么区别?
Exception和Error有什么区别?
世界上存在永远不会出错的程序吗?也许这只会出现在程序员的梦中。随着编程语言和软件的诞生,异常情况就如影随形地纠缠着我们,只有正确处理好意外情况,才能保证程序的
灬沙师弟
2022/09/06
1.6K0
int和Integer有什么区别?
Java虽然号称是面向对象的语言,但是原始数据类型仍然是重要的组成元素,所以在面试中,经常考察原始数据类型和包装类等Java语言特性。
灬沙师弟
2022/10/07
4.2K1
列表和元组有什么区别
如果有了解过python中的列表和元组,你可能会知道相对于列表,元组是不可变的,也就是说元组中的数据不能随意更改。除了列表是用中括号表示而元组是用小括号表示之外,这两种数据类型好像并没有什么不同,都是用来存放一系列的数据,事实真是如此吗? TypeError Traceback (most recent call last) in() 4 5 # 现在改变b中数据的值 — 6 b[2] = 4 TypeError: ‘tuple’ obje
企鹅号小编
2018/02/26
2K0
列表和元组有什么区别
Jsp和Servlet有什么区别?
Web容器加载Servlet并将其实例化后,Servlet生命周期开始,容器运行其init()方法进行Servlet的初始化;请求到达时调用Servlet的service()方法,service()方法会根据需要调用与请求对应的doGet或doPost等方法;当服务器关闭或项目被卸载时服务器会将Servlet实例销毁,此时会调用Servlet的destroy()方法。
李红
2019/08/28
2.5K0
Jsp和Servlet有什么区别?
int 和 Integer 有什么区别?
int 是 java 的原始数据类型,Integer 是 java 为 int 提供的封装类。
MickyInvQ
2020/09/27
1.6K0

相似问题

获取包含ajax内容的iframe的内容,使用Greasemonkey

10

iframe和innerHTML有什么区别?

43

AJAX和iFrame:从iFrame内部调用AJAX以更新外部DIV

21

包含任何内容([_])的列表和包含任何内容(_)的列表有什么区别

20

页和页表之间有什么区别?

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档