ページにフレームを設定していますが、子フレームのすべてのリンクを強制的に「自己」ではなく新しいウィンドウ (「空白」) で開く方法はありますか?
フレーム内にあるページにアクセスできません。リンクが新しいページを開くこともあれば、まったく新しいページに移動することもあります。すべてのリンクを新しいページで開くことで、ある程度の一貫性を保ちたいと考えています。
あなたはいくつかのjavascriptを使うことができます:
var links = document.getElementsByTagName('a');
for (var i = 0, l = links.length; i < l; ++i) {
links[i].target = '_blank';
}
フレーム内のドキュメントへの参照を取得する必要があります(申し訳ありませんが、フレームを操作してから久しぶりです)。メモリからそれは次のような簡単なものですframe.document
外部ページのDOMを変更できるとは思いませんが、一見の価値があります。
var links = document.getElementsByTagName('a');
for (var i = 0, l = links.length; i < l; ++i) {
links[i].target = '_blank';
}
これは、Javascript によってロードされたフレームが新しいウィンドウで開くには機能しません :(
フレームは使用しないでください。
または、HTTPオブジェクトを使用してそれらをロードし(多くのサーバー側言語にはたくさんあります)、正規表現を使用してリンクを変更し、代わりに「_blank」を指すようにしてから、ページに配置します。
または、DOMを使用できる場合があります。
nodeLink = document.getElementById("alink");
nodeLink.setAttribute("target", "_blank");
次のように応答すると、何が欠けていますか?
フレーム内のページを変更できない場合は、その動作を変更することはありません。
これを<head>と</head>タグの間に入れます。
<base target="_blank">
_blankページ上のすべてのリンクのベースにしたいターゲットに置き換えるだけです。