javascript - 使用 javascript/jquery 访问 iframe 的 html

标签 javascript jquery html iframe

我正在开发一个网站,该网站要求用户登录第 3 方网站,该网站显示在我的网站的 iframe 中。我正在尝试使用 jQuery 提取该网站的 html 代码,但它实际上不起作用。这是我的代码。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Iframe</title>
<link rel="stylesheet" type="text/css" href="style.css">

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">

$(document).ready(function(){
    console.log($("#iframe").contents().find("body"));
});

</script>
</head>

<body>
    <iframe src="https://www.google.com"></iframe>
</body>

</html>

我在示例中使用谷歌,但我使用的是另一个网站。我得到的结果是这样的 - w.fn.init [prevObject: w.fn.init(0)] - 但我找不到 html。有谁知道怎么做吗?

最佳答案

想象一下您的网站能够访问您所包含的任何 iframe 的内容。您可以简单地包含 Facebook、Gmail 或用户登录的任何银行网站等网站,然后窃取他们的个人信息。所以默认情况下这是严格禁止的:https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy

不过,有一种“选择加入”技术,可以在父窗口和 iframe 之间进行通信。基本上每个站点/文档都定义要传输的信息并使用 window.postMessage() 方法发送它:https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage

因此,如果消息是从一方发送的

window.postMessage("hello!", "http://example.com");

可能会被对方收到

window.addEventListener("message", function(e) {
    console.log(e.data); // prints "hello!"
}, false); 

关于javascript - 使用 javascript/jquery 访问 iframe 的 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49955826/

相关文章:

javascript - Backbone 集合 'add' 事件未触发

java - 当输入查询只是数据的一部分时,如何使用 Room 从数据库中获取数据?

javascript - 滚动到顶部的箭头隐藏在 html 上,正文 100% 高度

javascript - select2 中的默认选定选项使用远程数据进行多重选择

html - 如何增加 HTML 中表格列之间的距离?

html - 动态高度设置

javascript - 你能用 `bind` 重新绑定(bind)一个反弹函数吗

javascript - 刷新页面后产品自动添加到购物车

Javascript 代码,未终止的字符串文字

Javascript - 值未传递给函数