Skip to content
fandhe-frontend
GitHub

Download Trigger

a[download] 属性による宣言的なファイルダウンロードトリガーです。Blob 生成のような JS 実行を必要とせず、プレーンな HTML のみで完結する静的部品として実装されています。

Themes 版(fandhe-frontend-pre-styled-ui)はこの構造へ既定 CSS を追加するだけの薄いラッパーであり、CSS は持ちません。スタイル済みの表示例は Download Trigger を参照してください。

関連 API: fandhe-frontend-headless-ui API

Demo

枠線・余白は docs サイト側のデモ枠であり、fandhe-frontend-headless-ui 自体はスタイルを持ちません。

Features

  • Root(`a[download]`)1 パーツのみの最小構成。`href`/`file_name` から `download` 属性を組み立てる宣言的トリガーであり、JS(`Blob` 生成・非同期データ解決)を必要としない静的部品として実装される(AI 時代のセキュリティリスク低減方針に基づく意図的な設計)。
  • `href` は `fandhe_frontend_core::render` の既定エスケープ経路(許可スキームのみを通す deny-by-default)を通り、`javascript:`/`data:`/`blob:`/`vbscript:` 等の危険なスキームは属性ごと出力されない(fail-closed)。
  • `file_name` が `Some(name)` のとき `download="<name>"`、`None` のとき `download=""`(配信元のファイル名を使うブラウザ既定挙動)を出力する。
  • 実際のファイル取得(`Blob`/非同期データ解決)・`mimeType` の指定は非対応。実ファイル配信時の `Content-Type` は配信側ヘッダで表現する。

Anatomy

root

API Reference

Arguments

NameTypeDefaultDescription
href&str(必須)配信 URL。危険なスキームは render() の既定エスケープ経路で属性ごと出力されない。
file_nameOption<&str>None`Some(name)` で `download="<name>"`、`None` で `download=""`。

Examples

file_name を省略した変種

`file_name` に `None` を渡すと `download=""` が出力され、ブラウザは配信元のファイル名をそのまま使用します。

Download data.csv

Accessibility

Keyboard Interactions

KeyDescription
Tab / Enter`root` はネイティブ `<a href download>` であり、フォーカス・起動操作はブラウザ既定動作で成立する(JS 配線を必要としない)。