質問

私は現在使用し、IFrameをサンドボックスユーザー生成コンテンツです。このスタイリングが不要課題と当社の主なスタイルシート.

ただし、ユーザーを生成するリンクは当社の豊富なテキストエディタ、たいへのリンクの親だけでなくオンラインのIFrame.を実現できることを目標とする親会社に関しては問題ありませんがコントロールをユーザーのうに入力できます。

が別にHref内にはIFrameのように全ての対象者の親会なしに変更。使用ビットのJavascriptが使用できます。することの普遍的ではないので擦り落を通じてすべてのコンテンツと置き換えの対象programatically?

理想的には簡単なスクリプトスポットの一つで最善の解決策です。

思いの?

ソリューション

私のバリエーションに答えした...でも私には正しい方向を向いている。

<script>
  Event.observe(window, 'load', function() {
    $$('a').each(function(e) {
      e.writeAttribute('target', '_parent');
    });
  });
</script>

ことになるのIFrameいたします。で最終的に最も単純な解決の課題です。

役に立ちましたか?

解決

このホームページを作成いたします。んのアクセスが他の部分の身体の変数:

$(function() { 
        var $frame = $('<iframe style="width:200px; height:100px;">'); 
        $('body').html( $frame ); 
        setTimeout( function() { 
            var doc = $frame[0].contentWindow.document; 
            var $body = $('body',doc); 
            $body.html('<h1>Test</h1>'); 
        }, 1 ); 
    }); 

できますのでそのようなこと

$('a', $body).attr('target', '_parent');

こちら: http://groups.google.com/group/jquery-en/browse_thread/thread/fb646741a6192540

他のヒント

同じドメインのiframe?そうです。

<script type="text/javascript">
function hijacklinks(iframe){
  var as = iframe.contentDocument.getElementsByTagName('a');
  for(i=0;i<as.length;i++){
    as[i].setAttribute('target','_parent');
  }
}
</script>

<iframe src="http://example.com/test.html" onload="hijacklinks(this)"></iframe>

異なるドメインのiframe?No.

<iframe src="http://www.google.com/search?q=google+happy" onload="hijacklinks(this)"></iframe>

利回りは、"アクセス権は拒否されました取得物件のメソッドはHTMLDocument.getElementsByTagName".

あり方が、少なくとも簡単にJavaScriptを作権iframes muckingと現場を想像し、悪意のあるフレームは銀行のwebサイトおよび理解することができ理由).

私の周りのクロスドメインの問題によajax..

function runAjaxDone(response) {
            $('body').html(response);
        }
        function callAjax(url) {
            $.ajax({ url: url + '&r=' + Math.random(), success: runAjaxDone });
            return false;
        }

<a runat="server" href="#"
                        onclick='<%# "callAjax(\"http://partners.thevoiceinternet.com/portal/Customer/Report/AgentReport.aspx?AgentID="+Eval("AgentID").ToString()+"&name="+Server.UrlEncode(Eval("SubAgentName").ToString())+"\"); return false;" %>'>
                        <asp:Label ID="lbl" runat="server" Text='<%# Eval("SubAgentName") %>'></asp:Label></a>

以来、親フレームさんへアクセスできるので、その後、ajax.

単純な回答:

<head>
    <base target="_blank">
</head>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top