我的某个网页上有一个iframe,用于显示外部网站(供应商产品)上的内容。一切都很好,除了一些目标中有target =“_ main”的链接。这些链接在新选项卡中打开。我需要做的是从iframe中的所有链接中删除目标属性,以便所有链接都保留在iframe中,而不是打开新窗口或标签。
似乎应该有一个简单的JavaScript解决方案。
如果我无法在iframe中使用它,那么我将被迫重新创建我网站上的所有内容,这将是非常痛苦的.....至少可以说。
任何帮助???
答案 0 :(得分:1)
您需要访问外部网站的代码库才能动态修复此问题。您要在外部网站的代码库中执行的操作是检查网站是否在iframe中。如果它在iframe中,则运行一个函数来删除链接上的所有目标属性。
//供应商产品页面
if(self!== top){
$( 'A')removeAttr( '目标');
} //别无所事
self!== top与说我的网站不是最顶层窗口然后返回true相同。
答案 1 :(得分:0)
不是我所知道的。
但是,如果您可以访问您网站上的脚本语言(如PHP或ASP),则可以直接从服务器上阅读供应商的页面,进行查找和查找。替换它&然后将其呈现到您的网站上;无论是在iframe还是其他你想要的。
修改强>
有很多方法可以做到这一点,具体取决于你对PHP配置的控制程度。看看这些资源&看看你能不知道该怎么做。如果不是,我会建议你开始一个专门关注你正在努力解决的问题。
如果已启用fopen包装,则可以使用此函数将URL用作文件名。有关如何指定文件名的更多详细信息,请参阅fopen()。有关各种包装器具有哪些功能的信息,使用说明以及它们可能提供的任何预定义变量的信息,请参阅支持的协议和包装器。
http://php.net/manual/en/function.fsockopen.php再次,请注意警告&注释。
我个人编写了一个使用fsockopen的类,因为它对我的需求来说是最灵活的,但通常file_get_contents可以解决这个问题,因为如果配置了正确的包装器,那么设置3个选项是最简单的。您不需要开始使用SSL或有趣的协议。我远离CURL,因为你必须安装一个库才能使它工作。我更喜欢我的代码可以移植到标准安装。
一些可能有用的有用链接:
可能的示例
$vendorUrl = isset( $_REQUEST['vendor'] ) ? $_REQUEST['vendor'] : 'www.default-vendor.com';
$iframeContents = file_get_contents("http://$vendorUrl", false);
exit str_replace( 'target="_main"', '', $iframeContents );
然后,您只需将iframe指向您在服务器上保存此脚本的任何页面即可。 include?vender = www.vendor-url.com作为查询字符串。
答案 2 :(得分:0)
如何给自己的iframe命名为_main?
<iframe name="_main" ...
其他链接也应该在那个iframe中打开。
此致,Max