2012-01-17 18 views
3

iframeであるページのすべてのhref要素を取得することは可能ですか?iframe内のすべてのリンクを取得し、空のターゲット属性を追加してください

意味、私は別のサイトからページをiframeしているページがあります。私がiframeに表示しているのは、いくつかのリンク(hrefタグ)が含まれています。

iframe内のすべてのリンクにBLANKのTARGET属性を追加することはできますか?リンクはいくつかのdivとテーブルの中に埋め込まれているので、多くのネストしたテーブル/ div内に属性を再帰的に追加する必要があります。

EDIT:削除されるために必要な余分な文字を表示する を追加しましたスクリーンショット:

enter image description here

答えて

4

iframe srcが同じドメインにある場合は、document.getElementById( "frameID")。documentを使用して簡単にアクセスして、それを操作できます。

それは異なるドメインの場合は、あなたがあなた自身のドメイン内のスクリプトにはiframeをリンクし、そのスクリプトは、リモート・ドメインからデータをダウンロードし、プリントアウトさせる検討することができる:)

myHTMLpage.html

<html> 
    <head> 
    <title></title> 
     <script src="jquery-1.7.1.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $("#ifr").load(function() { 
       var ifr = document.getElementById("ifr") 
       var anchors = ifr.contentDocument.getElementsByTagName("a"); 
       for (var i in anchors) { 
        anchors[i].setAttribute("target", "_blank"); 
       } 
      }); 
     }); 
    </script> 
    </head> 
    <body> 
     <iframe src="myOwnSite.aspx" width="900px" height="600px" id="ifr" ></iframe> 
    </body> 
</html> 

myOwnSite.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="MyOwnSite.aspx.cs" Inherits="MyOwnSite" %> 

myOwnSite.aspx.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Net; 


public partial class MyOwnSite : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!Page.IsPostBack) 
     { 
      Response.Write(new WebClient().DownloadString("http://theExternalSiteHere.com")); 
     } 
    } 
} 
+0

これは別のドメインにあります。 iframeを自分のドメイン上のスクリプトにリンクして、データをダウンロードして印刷できるようにすることができますか?私は完全に理解していません。ありがとう – obautista

+1

iframeを持つページがあります。 iframes src属性は、自分のサイト上のphpまたはaspスクリプトを指します。そのスクリプトはiframeにあるべきページをダウンロードし、echo/response.writeでそれを出力します。今、あなたは自分のドメイン上に正しいhtmlを持っています。私は私の電話の上にいるので、コードサンプルを与えることはできません。しかしそれでも意味がない場合は、30分でサンプルを提供することができます:) – f2lollpll

+0

ほぼ... hrefタグにターゲット属性を追加していないだけです。私はあなたのコードを試してjqueryを使用しています。 – obautista

2

のiframe内のサイトは、あなたに従っているドメイン上にない場合はいいえ、これは可能ではありません説明がそのように思われる。

1

は、あなたのiframeのheadタグ内<base target="_blank">を追加してみてください。

1

これが私の仕事です:

するvarアンカー=のdocument.getElementById(ID).contentWindow.document.getElementsByTagName( "A"); for(アンカーのvar i){ anchors [i] .target = "_blank"; //setAttribute( "target"、 "_blank"); }

私はIE8を持っています。 IE 6とIE 7用のスクリプトは異なる場合があります。

関連する問題