在新标签页中打开来自不同域的 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。另请注意,其他页面中的任何相对路径都将无法加载(您可以通过将任何相对路径替换为绝对路径来改善这一点)。
我们有以下场景:
--- 站点 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。另请注意,其他页面中的任何相对路径都将无法加载(您可以通过将任何相对路径替换为绝对路径来改善这一点)。