0

我需要使用从其他域加载到 iframe 中的 jQuery 来更改网站的内容,例如:

<html>
  <head>
  </head>
  <body>
    <iframe src="site.com/somepage.html></iframe>
    <script>
      $('iframe').find('div#message').value('hello');
    </script>
  </body>
</html>

我还添加了目标链接到白名单。有什么帮助吗?谢谢。

4

3 回答 3

0

由于跨站点攻击/模拟证券,很长一段时间以来,这在您自己的域不同的大型机浏览器(Chrome、IE、Fire)中是不可能的。

您可以通过代理来实现这一点,通过代理我的意思是,使用服务器端解决方案,您可以在该解决方案中获取“site.com”生成的 HTML 并在您的域中输出它。

于 2013-08-29T17:05:47.170 回答
0

您的脚本在运行时运行,因此它不会找到 iframe 的 DOM 并会中断。您可以做的是在您的父页面上创建一个函数,例如:

//On Your Parent page
function modifyIframeContent() {
     $('iframe').find('div#message').value('hello');
}

然后在加载后从 iframe 调用此函数。

// On Your Iframe page
window.onload = function() {
    parent.modifyIframeContent();
}

当然:您的 iframe 必须与此工作的域相同。

于 2013-08-29T17:09:30.260 回答
0

如果您想获得一个不同域的网站,您必须在服务器端使用解析器,它将解析来自网站的 html,然后将解析的 html 回显到您的客户端

于 2013-08-29T17:11:31.190 回答