読者です 読者をやめる 読者になる 読者になる

サイ本要約 13章 Webブラウザに組み込まれたJavaScript

JavaScript 読書

JavaScript 第5版

JavaScript 第5版

Windowオブジェクト

  • Windowオブジェクトがグローバルオブジェクトの役目を果たす
  • Windowオブジェクトのプロパティ=グローバル変数

クライアントサイドオブジェクトの階層構造とDOM

current window
┠ self, window, parent, top など
┠ navigator
┠ frames
┠ location
┠ history
┠ screen
┗ document
  ┠ forms

  ┠ elements
  ┠ anchors

  ┠ links
  ┠ images

  ┗ applets[]

イベント駆動型のプログラミングモデル

控えめなJavaScript(考え方)

  1. HTMLマークアップJavaScriptコードの分離
  2. 正常に機能を停止する(JavaScriptコードがなくてもコンテンツが利用可能であるべき)
  3. JavaScriptが原因でHTMLページのアクセサビリティを低下させてはならない

プログラムの実行

スクリプト実行&ドキュメント解析 → onloadイベント生成 → ブラウザがイベントハンドラを呼び出し

クライアントサイドJavaScriptはシングルスレッド

InternetExplorer の条件付きコメント

<!--[if IE]>
IEでのみ表示される
<![endif]-->

<!--[if gte IE6]>
IE6以降でのみ表示される
<![endif]-->

JavaScriptではできないこと

  • 多くのブラウザでは新規ウィンドウを開くのはユーザの操作がトリガーとなるように制限されている
  • JavaScriptプログラムがクローズ出来るのは、そのプログラムがオープンしたウィンドウだけ
  • マウスがリンクの上に移動したときに飛び先がステータス行に表示されることを変更できない
  • 1辺が100px未満のウィンドウのオープン・100px未満へのウィンドウのサイズ変更不可
  • HTMLのFileUpload要素のvalueプロパティに値を設定できない
  • 同一出身ポリシー
  • 異なる出身のコンテンツにアクセスすることを制限するポリシー
  • ドキュメントの「出身」とは、そのドキュメントをロードしたURLのプロトコルとホストとポート番号を組み合わせたもの。これらのうちどれかが異なれば「出身」が異なるとみなされる
  • 同一出身ポリシーが関係するのはスクリプトが埋めこまれているドキュメントの出身。スクリプト自身の出身ではない。

セキュリティ

プラグイン、Active Xのコントロールの制御
  • Javaの「サンドボックス」: アプレットがそのアプレットをロードしたりサーバ以外のサーバと通信できないようにするもの
  • プラグインがスクリプトから制御できるということはプラグインのセキュリティ機構を信用しなければならないということ