在新标签页中打开来自不同域的 iframe 中的链接

Make links in iframe from a different domain open in a new tab

我们有以下场景:

--- 站点 A 给了我一个脚本。

--- 我将脚本放在站点 B 上(index.html)

--- 脚本生成一个 iframe,其中包含 link(< a >)

结果 => 站点 B 包含一个带有 link 的 ifame,来自站点 A

我只想“在新标签页中打开 link”:D

我可以通过添加 JavaScript 属性来做到这一点 target="_blank".. 但是我 不能 select link(<a>) 和 JavaScript 因为 iframe 来自另一个站点。出于安全原因,浏览器不允许您访问不是来自您网站的 iframe 内容。

我正在寻找一些技巧...
我在想玩事件是否对我有帮助?

就像捕捉 link 单击事件,而不是停止事件并触发新事件以在新选项卡中打开 link。

或者捕获 leftclick 事件、停止事件、触发右键单击事件,然后从上下文菜单 select “在新选项卡中打开 link”(所有这些都发生在用户 leftclick link)

欢迎任何建议,我需要换个角度看待这个问题...

您可以使用代理。这是我使用的代码:

get.php

<?php
  // if no URL is submitted, exit
  if(!isset($_REQUEST['url'])){echo 'You did not specify a URL'; exit();}
  $url = $_REQUEST['url'];
  // instanciate the cURL connection
  $ch = curl_init();
  // set the URL
  curl_setopt($ch, CURLOPT_URL, $url);
  // this will allow you to print the content on your page
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  // this is to get the content type (for images for example)
  curl_setopt($ch,CURLOPT_HEADER,true);
  $res = curl_exec($ch);
  // seperate the headers and content
  list($headers,$content) = explode("\r\n\r\n",$res,2);
  // set the content type
  header('Content-type: '.curl_getinfo($ch,CURLINFO_CONTENT_TYPE));
  // display the results
  echo $content;
  // close the connection
  curl_close($ch);
?>

您可以通过传递 link:

来使用它
http://yourdomain.com/get.php?url=http%3A%2F%2Fotherdomain.com%2Fpage.html%0D%0A

如您所见,传递的URL应该是urlEncoded。另请注意,其他页面中的任何相对路径都将无法加载(您可以通过将任何相对路径替换为绝对路径来改善这一点)。