2009-08-28 4 views
0

ページにフレームが設定されています。子フレームのすべてのリンクを「自己」ではなく新しいウィンドウ(「空白」)で開くようにする方法はありますか?HTMLフレームすべてのリンクで強制的に新しいウィンドウを開きます

私は自分のフレームにあるページにアクセスすることはできません。時にはリンクが新しいページを開いて、まったく新しいページに移動することもあります。新しいページですべてのリンクを開いていくことで、一貫性を保ちたい。

答えて

0

フレームを使用しないでください。

HTTPオブジェクト(多くのサーバー側言語があります)を使用して読み込み、正規表現を使用してリンクを修正し、代わりに '_blank'をポイントしてページに配置します。私は次のように応答するとき、私は何を

nodeLink = document.getElementById("alink"); 
nodeLink.setAttribute("target", "_blank"); 
+0

私はこれをお試しいただき、ありがとうございます。 –

0

をしないのです:

また、あなたは DOMを使用することができるかもしれませんか?

フレーム内のページを変更できない場合は、その動作を変更しません。

+0

フレームを操作するためにjavascriptを使用する方法と、フレームがどのようにロードされているかを尋ねていました。 –

+0

入手しました。 nickfの解決策は良いですが、私はあなたが「外部ページのDOMを変更する」ことができないと信じています。したがって、あなたはそれを所有していないので、 "あなたはフレームのページを変更することはできません"についての私のコメント。 – lance

2

あなたはいくつかのJavaScriptを使用することができます:あなたはちょうどあなたのフレーム内のドキュメントへの参照を取得する必要があります

var links = document.getElementsByTagName('a'); 
for (var i = 0, l = links.length; i < l; ++i) { 
    links[i].target = '_blank'; 
} 

(申し訳ありませんが、私がフレームで働いてきたので、長い時間がかかりました)。メモリからそれは簡単なものですframe.document

私は外部ページのDOMを変更することはできませんが、それは価値があると思います。

+0

私はこれを試して、感謝します。 –

1
var links = document.getElementsByTagName('a'); 
for (var i = 0, l = links.length; i < l; ++i) { 
    links[i].target = '_blank'; 
} 

これは新しいウィンドウで開くようにJavascriptのでロードされたフレームのために動作しません:(

0

あなた<head></head>タグの間にこれを入れて:

<base target="_blank"> 

ただ、どんなターゲットで_blankを置き換えますページ内のすべてのリンクのベースになりたい。

出典:http://www.w3schools.com/tags/att_base_target.asp

関連する問題