#?SuikaWiki/0.9 [1] [[HTML]] 系マーク付け言語では一般に、 [[埋込みリンク]]要素でリンクされる (埋め込まれる) 資源の [[URI参照]]を書く属性です。 [2] >>1 HTML の要素で [CODE(HTMLa)[src]] 属性を持つものの例としては、 [CODE(HTMLe)[[[img]]]], [CODE(HTMLe)[[[embed]]]], [CODE(HTMLe)[[[input]]]], [CODE(HTMLe)[[[script]]]], [CODE(HTMLe)[[[audio]]]], [CODE(HTMLe)[[[video]]]], [CODE(HTMLe)[[[frame]]]], [CODE(HTMLe)[[[iframe]]]] などがあります。 [[#comment]] * img 要素 src 属性 (HTML, XHTML 1) [4] [[HTML]] の [CODE(HTMLe)[[[img]]]] 要素の [DFN[[CODE(HTMLa)[src]] 属性]]は、 画像資源の位置を指定します。 [5] 仕様書: [[HTML 4]] [[#comment]] ** 属性値 [6] この属性値の値は [CODE(SGML)[%[[URI]]]] です。 [[SGML]] 的には [CODE(SGML)[[[CDATA]]]] です。 [7] この属性は必須です。 [[#comment]] ** Mozilla の内部画像 [8] [CODE(HTMLa)[src]] 属性の値は本来 URI 参照ですが、 [[mosaic]] 系 UA の中には特定の値を指定すると内部組込みの特定の画像を表示することがあります。 [9] 存在が知られている組込み画像 ,[CODE(HTMLa)[src]] ,[CODE[internal-gopher-menu]] ,[CODE[internal-gopher-sound]] ,[CODE[internal-gopher-movie]] ,[CODE[internal-gopher-telnet]] ,[CODE[internal-gopher-text]] ,[CODE[internal-gopher-audio]] ,[CODE[internal-gopher-binary]] ,[CODE[internal-gopher-find]] ,[CODE[internal-gopher-image]] ,[CODE[internal-gopher-index]] [10] [[相対URI]] と区別できないのであんまりよくないと思いますが。。。 [[#comment]] *** 実装 [31] [[NC]] 4.01 で [CODE[internal-gopher-audio]] と [CODE[internal-gopher-find]] が表示できないみたい。 [11] [[Gecko]] な [[Mozilla]] では [[NN]]4 以前より表示できる数が少ないようです。 特に、 [[Netscape]] 6 くらいの古い Gecko Mozilla ではどれも表示できません。 (ということは、わざわざその後復元されたということです。) [CODE(URI)[[[resource:]]///res/html/gopher-[VAR[*]].gif]] が使われているみたいです。 [23] >>11 勝手にファイルを追加したも反映はされないみたいです。 [13] >>12 によれば [[IBM]] の [[WebExplorer]] も一部対応しているそうです。 また、 WebExplorer には [CODE(HTMLa)[[[internal]]]] 属性があって、こちらに組込み画像名を指定する方法も使えるそうです。 [[#comment]] *** 歴史 [16] 由来は [[Mosaic]] までさかのぼります: ''"internal-gopher-image"?!?'' [[#comment]] *** 参考文献 - [12] ''Browser-interne Ressourcen'' - [14] 無題 [[#comment]] *** メモ [15] ところでなぜだかわかりませんが、 この隠し機能を説明している文書はほとんどが非英語の欧州語です。なぜでしょ。 [20] [[Mozilla]] で、 [[CSS]] で [SAMP(CSS)[background-image: url(internal-gopher-text)]] とかしてみたけど流石に駄目でした。 [[#comment]] ** メモ [[#comment]] * input 要素 src 属性 (HTML, XHTML 1) [3] [[HTML]] の [CODE(HTMLe)[[[input]]]] 要素の [DFN[[CODE(HTMLa)[src]] 属性]]は、 図形的提出ボタンを飾る画像を指定します。 この属性は、 [CODE(HTMLa)[[[type]]]] 属性が [CODE(HTML)[[[image]]]] の時使えます。 [40] 仕様書: - [[HTML 4]] -- [CODE(HTMLe)[input]] 要素 [CODE(HTMLa)[src]] 属性 [[#comment]] ** 属性値 [41] この属性の値は [CODE(SGML)[%[[URI]]]] です。 [[SGML]] 的には [CODE(SGML)[[[CDATA]]]] です。 [42] この属性は省略可能です。 [[#comment]] ** メモ [43] [CODE(HTML)[[[image]]]] 制御子の説明もご覧ください。 [[#comment]] * frame 要素、iframe 要素 src 属性 (HTML, XHTML 1) [32] [[HTML]] の [CODE(HTMLe)[[[frame]]]] 要素・ [CODE(HTMLe)[[[iframe]]]] 要素の [DFN[[CODE(HTMLa)[src]] 属性]]は、そのフレームの初期内容の場所を指定します。 [33] 仕様書: - [[HTML 4]] -- [CODE(HTMLe)[frame]] 要素 [CODE(HTMLa)[src]] 属性 -- Setting the initial contents of a frame [[#comment]] ** 属性値 [34] この属性の値は [CODE(SGML)[%[[URI]]]] です。 [[SGML]] 的には [CODE(SGML)[[[CDATA]]]] です。 [38] 但し、フレームの定義と同じ文書の内容を参照することはできません [SRC[HTML 4 16.2.2.1]]。 仕様書の例 (>>37) は [CODE(HTMLe)[noframes]] にある要素を参照していますが、 自分自身 (フレーム集合文書) そのものを指すことも当然できないのでしょう。 [35] この属性は省略可能です。 [[#comment]] ** 応用 [39] >>38 より、実装は直接再帰状態を扱う必要がありません。 しかし、間接的に再帰状態なのは陽に禁止されてはいません。 (意味が無いのでするべきではないでしょう。) 直接にせよ間接にせよ、実装は自分自身を参照していないかチェックするべきでしょう。 (しかし必死でレンダリングを繰り返す哀れなブラウザも少なくないのが事実です。) [[#comment]] ** 例 [36] 4つのフレームがあるフレーム集合文書の例 [SRC[HTML 4 16.2.2.1]] [PRE(HTML)[ A frameset document ]PRE] レンダリング例: [PRE[ ------------------------------------------ |Frame 1 |Frame 3 |Frame 4 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -------------| | | |Frame 2 | | | | | | | | | | | ------------------------------------------ ]PRE] それぞれのフレームに [CODE(HTMLa)[src]] で指定された[[資源]]をレンダリングしたのが初期状態です。 [37] 同じ文書を参照する'''違法'''な例 [SRC[HTML 4 16.2.2.1、改]] [PRE(HTML)[ A frameset document ...some text... <H2><A name="ANCHOR_IN_SAME_DOCUMENT">Important section</A></H2> ...some text... ]PRE] この例では、2つ目の [CODE(HTMLe)[frame]] で[[素片識別子]]だけの [[URI参照]]を指定しています。つまり、 [CODE(HTMLe)[[[noframes]]]] 要素内にある、指定された名前の [CODE(HTMLe)[a]] 要素を参照しているのですが、このような指定は'''違法'''とされています。 [[#comment]] ** メモ [[#comment]] * script 要素 src 属性 (HTML, XHTML 1) [44] [[HTML]] の [CODE(HTMLe)[[[script]]]] 要素の [DFN[[CODE(HTMLa)[src]] 属性]]は、 外部[[スクリプト]]の位置を指定します。 [45] 仕様書: - [[HTML 4]] -- [CITE[18.2.1 The [CODE(HTMLe)[SCRIPT]] element]] -- [CODE(HTMLe)[script]] 要素 [CODE(HTMLa)[src]] 属性 [[#comment]] ** 属性値 [46] この属性の値は [CODE(SGML)[%[[URI]]]] です。 [[SGML]] 的には [CODE(SGML)[[[CDATA]]]] です。 普通は[[素片識別子]]は使いませんが、 [[スクリプト言語]]によっては使い道があるかもしれません。 少なくても使ってはいけない理由はないでしょう。 使用実績のある [[scheme]] は、 [CODE(URI)[[[http]]:]], [CODE(URI)[[[https]]:]] くらいでしょうか。探せば [CODE(URI)[[[ftp]]:]], [CODE(URI)[[[cid]]:]] もあるかもしれませんし、ブラウザは実装していそうです。 [CODE(URI)[[[chrome]]:]] や [CODE(URI)[[[resource]]:]] など UA 依存の特殊な scheme に対応しているものもあるでしょう。 [47] この属性は省略可能です。省略すると [CODE(HTMLe)[script]] 要素の内容がスクリプトとみなされます。逆に指定すると内容は無視されます。 [SRC[HTML 4 18.2.1]] [CODE(HTMLa)[src]] 属性を省略して、内容は空であるとしても、 HTML 的には空のスクリプトであるというだけで問題ないはずです。 しかし、スクリプト言語によっては、 まったくの空ではいけないというものももしかするとあるかもしれません。 普通は空でも何も行われないだけです。ただ、 空なら既定の動作をするという変なスクリプト言語もあるかもしれません。 [[#comment]] ** メモ [[#comment]] *メモ