アドレスバー、アンカー、iframe.src が解決できるのはなぜjavascript:
ですか。これに関する w3c 仕様はありますか?
2 に答える
驚いたことに、W3C は JavaScript (正式には ECMAScript と呼ばれます) とは何の関係もありません。HTML 仕様はスクリプト言語に依存せず、実際に Tcl で例を示しています。IE の全盛期には、JavaScript の代わりに VBScript を使用するページに出くわすことは珍しくありませんでした。
これを行うことが一般的になった後、ブラウザーは URI でスクリプトを評価する機能を必要としていました。
<a href="javascript: alert('foo');">click me</a>
... などの DOM イベントの代替として機能しますonclick
。このメソッドは、DOM イベントが標準化される前に登場したか、特定のブラウザーへのロックインを促進するためにベンダー拡張として導入されたのではないかと推測しています ( a la <marquee>
および<blink>
)。しかし、これは単なる憶測です。
とにかく、ブラウザがhref=""
属性を処理するときにスクリプトの評価をサポートしている場合、サポートをアドレス バーに拡張するのは簡単なことです。Bookmarklets の作成は、完全に偶然で意図的ではなかったと思いますが、それでも肯定的な結果でした。
「javascript:alert('here');」と入力して、正確に「解決」するわけではありません。一部のブラウザでは、アラートボックスを表示させることができます。私が知っている仕様はありません。ページが読み込まれた後、一部のブラウザがクライアント側でjavascriptを実行するだけです。
一般に、コロン(:)の左側に何かを入力すると、それはプロトコルです。たとえば、chrome://、http://、sftp://
また、Chromeでは、JavaScriptコンソールを開いて、アドレスバーではなくJavaScriptを直接入力できます。