删除iframe链接中的目标属性

时间:2013-06-17 16:29:49

标签: javascript iframe hyperlink attributes anchor

我的某个网页上有一个iframe,用于显示外部网站(供应商产品)上的内容。一切都很好,除了一些目标中有target =“_ main”的链接。这些链接在新选项卡中打开。我需要做的是从iframe中的所有链接中删除目标属性,以便所有链接都保留在iframe中,而不是打开新窗口或标签。

似乎应该有一个简单的JavaScript解决方案。

如果我无法在iframe中使用它,那么我将被迫重新创建我网站上的所有内容,这将是非常痛苦的.....至少可以说。

任何帮助???

3 个答案:

答案 0 :(得分:1)

您需要访问外部网站的代码库才能动态修复此问题。您要在外部网站的代码库中执行的操作是检查网站是否在iframe中。如果它在iframe中,则运行一个函数来删除链接上的所有目标属性。

//供应商产品页面

if(self!== top){

$( 'A')removeAttr( '目标');

} //别无所事

self!== top与说我的网站不是最顶层窗口然后返回true相同。

答案 1 :(得分:0)

不是我所知道的。

但是,如果您可以访问您网站上的脚本语言(如PHP或ASP),则可以直接从服务器上阅读供应商的页面,进行查找和查找。替换它&然后将其呈现到您的网站上;无论是在iframe还是其他你想要的。

修改

有很多方法可以做到这一点,具体取决于你对PHP配置的控制程度。看看这些资源&看看你能不知道该怎么做。如果不是,我会建议你开始一个专门关注你正在努力解决的问题。

  1. http://php.net/manual/en/function.file-get-contents.php使用此方法,您必须了解页面上的提示:
  2.   
        

    如果已启用fopen包装,则可以使用此函数将URL用作文件名。有关如何指定文件名的更多详细信息,请参阅fopen()。有关各种包装器具有哪些功能的信息,使用说明以及它们可能提供的任何预定义变量的信息,请参阅支持的协议和包装器。

      
    1. http://php.net/manual/en/function.fsockopen.php再次,请注意警告&注释。

    2. http://php.net/manual/en/book.curl.php

    3. 我个人编写了一个使用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