web-dev-qa-db-ja.com

HTML5でtarget = "_ blank"を使用しても大丈夫ですか?

HTML5でtarget="_blank"をHTML5で使用することはもはやできなかったことをどこかで読んだことを思い出しますが、今は見つけることができません。

target="_blank"を使い続けても大丈夫ですか?

一般的に悪い考えだと思いますが、PDFのようなもののために新しいウィンドウを開く最も簡単な方法であり、JavaScriptに依存する必要もありません。

156
Darryl Hein

target="_blank"は大丈夫のようです。 最新のHTML5ドラフト のブラウジングコンテキストキーワードとしてリストされています。

151
mike

target="_blank";を使用してもかまいません。新しいウィンドウをターゲットにすると、ほとんどのブラウザでポップアップアラートが常に表示されるため、これはXHTMLで廃止されました。 XHTMLは、検証のターゲット属性で常にエラーを表示します。

まだ使用しているため、HTML 5で元に戻しました。それは私たちの友人であり、手放すことはできません。

手放すことはありません。

89
Graham

target="_blank"HTML5で許容可能 ですが、個人的には(新しいウィンドウでPDFを開く場合でも)使用しないようにしています。

HTMLは意味と内容を定義する必要があります。 a属性が削除された場合、target要素のmeaningは変わるか?」そうでない場合、コードはHTMLに入れないでください。 (実際、W3Cがそれを維持していたことに驚いています...彼らは本当に手放すことができないと思います。)

ブラウザ動作、特にユーザーとの対話型動作は、JavaScriptなどのクライアント側スクリプト言語で実装する必要があります。ブラウザーを特定の方法で動作させる、つまり新しいウィンドウを開く必要があるため、JSを使用する必要があります。しかし、あなたが述べたように、この動作はブラウザがJSに依存することを要求します。 (ただし、サイトが徐々に劣化したり、段階的に強化されていれば または何でも でも大丈夫です。JSが無効になっているユーザーは多くを見逃すことはありません。)

とはいえ、これらのどちらも正しい答えではありません。 どこかで は、リンクを開く方法は最終的にエンドユーザーが決定する方法という意見です。

あなたはウィキペディアをサーフィンして、ウサギの穴にどんどん深く入り込んでいます。読書中にリンクに出くわします。

戻ってくる前に、リンクされたページをすばやくすばやく読みたいとしましょう。新しいタブで開き、完了したら閉じます(「戻る」ボタンを押してページの再読み込みを待機するのに時間がかかるため)。または、面白そうに見えて後で保存したい場合はどうしますか?代わりに、新しい背景タブで開いて、現在のページを読み続けてください。または、このページを読み終えたら、現在のタブのリンクをたどるだけです。

要点は、独自のワークフローがあり、ブラウザがそれに応じて動作するようにすることです。この種の決定を下すと、かなりイライラするかもしれません。

そうは言っても、Web開発者は、リンクがどこに行くのか、参照するソースのタイプやフォーマット、そして何をするのかを絶対に明確にする必要があります。ツールチップは友だちになれます(タブレットや電話を使用している場合を除き、その場合はモバイルサイトで指定してください)。私たちは皆、私たちが予期していなかった場所に連れて行くこと、または私たちが意図していなかった何かを実現することがどれほどひどいことか知っています。

15
chharvey

pDFのようなものの新しいウィンドウを開く最も簡単な方法です

また、Windows以外のユーザーを悩ます最も簡単な方法です。 PDFは、他のプラットフォームのブラウザーで正常に開きます。また、新しいウィンドウを開くと、ナビゲーション履歴が台無しになり、スマートフォンのような小さなプラットフォームで問題が複雑になります。

古いバージョンのWindowsが破損したという理由だけで、PDFなどの新しいウィンドウを開かないでください。

12
Homer

ほとんどのWeb開発者は、target="_blank"を使用して、新しいタブでリンクを開きます。 target="_blank"を新しいタブでリンクを開くためだけに使用すると、攻撃者に対して脆弱になります。新しいタブ(target="_blank")でリンクを開くと、新しいタブで開くページは初期タブにアクセスし、window.openerプロパティを使用してその場所を変更できます。

JavaScriptコード:

window.opener.location.replace(malicious URL)

防止:

rel="nofollow noopener noreferrer"
4
Vamshi Krishna

HTML5でもターゲットは受け入れられますが、推奨されません。 PDFファイルにリンクするには、ターゲット属性の代わりにdownload属性を使用します。

以下に例を示します。

<a href="files/invoice.pdf" download>Invoice</a>

元のファイル名が一意のファイルストレージ用にコーディングされている場合、ダウンロード属性に値を割り当てることにより、ユーザーフレンドリなダウンロード名を指定できます。

<a href="files/j24oHPqJiUR2ftK0oeNH.pdf" download="invoice.pdf">Invoice</a>

最新のブラウザのほとんどはこの機能をサポートしていますが、サポートしていないブラウザもあることに注意してください。詳細については、 caniuse.com を参照してください。

4
kojow7
2
Brendan

Jqueryを使用して次の方法で実行できます。これにより、新しいウィンドウで開きます。

<input type="button" id="idboton" value="google" name="boton" /> 

<script type="text/javascript">
    $('#idboton').click(function(){
        window.open('https://www.google.com.co');
    });

</script>