【31】ブラウザオブジェクト
5199 ワード
JavaScriptは、ブラウザから提供される多くのオブジェクトを取得し、操作することができます.
window
windowオブジェクトはグローバルスコープとしてだけでなく、ブラウザウィンドウを表します.windowオブジェクトはinner Widthとinner Heightのプロパティがあり、ブラウザウィンドウの内部幅と高さを取得することができます.内部の幅の高さとは、メニューバー、ツールバー、枠などのビット要素を超えた後、ページの幅の高さを表示することです.互換性:IE<=8はサポートしていません.
navigator
navigatorオブジェクトはブラウザの情報を表しています.最も一般的な属性は以下の通りです.ナビゲート.appName:ブラウザ名; ナビゲート.appVersion:ブラウザバージョン; navigator.langage:ブラウザで設定された言語; ナビゲート.plotform:オペレーティングシステムタイプ. ナビゲート.userAgent:ブラウザで設定されたUser-Agent文字列.
screenオブジェクトは画面の情報を表し、一般的な属性は以下の通りである. screen.width:画面幅はピクセル単位である. screen.height:画面の高さはピクセル単位である; scrren.co lorDepth:8、16、24のような色のビット数を返します.
locationオブジェクトは、現在のページのURL情報を表します.例えば、完全なURL:
documentオブジェクトは現在のページを表します.HTMLはブラウザでDOM形式でツリー構造として表示されているため、DOMツリー全体のルートノードが対象となります.documentのtitle属性はHTMLドキュメントのxxxから読み取りましたが、動的に変更できます.
history
historyオブジェクトはブラウザの を しています.JavaScriptはhistoryオブジェクトのback()またはforward()を び すことができます.ユーザがブラウザの「 」または「 」ボタンをクリックしたのに します.このオブジェクトは なレガシーですが、 のWebページでは、AJAXとページの が く、 にhistory.backを び すと、ユーザーは に りを じるかもしれません. がWebページの を した は、ログインページが した に、history.back()を び して、ログイン のページに そうとします.これは った です.どんな でも、historyという を うべきではないです.
window
windowオブジェクトはグローバルスコープとしてだけでなく、ブラウザウィンドウを表します.windowオブジェクトはinner Widthとinner Heightのプロパティがあり、ブラウザウィンドウの内部幅と高さを取得することができます.内部の幅の高さとは、メニューバー、ツールバー、枠などのビット要素を超えた後、ページの幅の高さを表示することです.互換性:IE<=8はサポートしていません.
'use strict' ;
// :
alert('window inner size: ' + window.innerWidth + ' x ' + window.innerHeight);
これに対応して、もう一つのouterWidthとouterHeight属性があり、ブラウザウィンドウ全体の幅の高さを取得することができます.navigator
navigatorオブジェクトはブラウザの情報を表しています.最も一般的な属性は以下の通りです.
'use strict';
alert('appName = ' + navigator.appName + '
' +
'appVersion = ' navigator.appVersion + '
' +
'language = ' + navigator.language + '
' +
'platform = ' + navigator.platform + '
' +
'userAgent = ' + navigator.userAgent);
navigatorの情報はユーザーによって容易に変更されますので、JavaScriptの読み取り値は必ずしも正しいとは限りません.多くの初心者は異なるブラウザに対して異なるコードを書くために、ifでブラウザバージョンを判断することが好きです.var width;
if (getIEVersion(navigator.userAgent) < 9) {
width = document.body.clientWidth;
} else {
width = window.innerWidth;
}
しかし、これは正確ではないと判断するかもしれないし、コードの維持も難しいです.正しい方法は、JavaScriptを利用して属性が存在しない場合にundefinedに戻る特性であり、直接に短絡演算子124で計算することである.var width = window.innerWidth || document.body.clientWidth;
screenscreenオブジェクトは画面の情報を表し、一般的な属性は以下の通りである.
'use strict';
alert('Screen size = ' + screen.width + ' x ' + screen.height);
locationlocationオブジェクトは、現在のページのURL情報を表します.例えば、完全なURL:
http://www.example.com:8080/path/index.html?a=1&b=2#TOP
location.hrefで取得できます.URLの各部分の値を取得するには、このように書くことができます.location.protocol: // 'http'
location.host; // 'www.example.com'
location.port; // '8080'
location.pathname; // '/path/index.html'
location.search; // '?a=1&b=2'
location.hash; // 'TOP'
新しいページを読み込むには、location.assign()を呼び出すことができます.現在のページを再読み込みするには、locations.reload()を呼び出す方法が非常に便利です.'use strict';
if (confirm(' ' + location.href + '?')) {
location.reload();
} else {
location.assign('/discuss'); // URL
}
documentdocumentオブジェクトは現在のページを表します.HTMLはブラウザでDOM形式でツリー構造として表示されているため、DOMツリー全体のルートノードが対象となります.documentのtitle属性はHTMLドキュメントのxxxから読み取りましたが、動的に変更できます.
'use strict';
document.title = ' JavaScript!';
// title “ JavaScript!”
ブラウザのウィンドウタイトルの変化を見てください.DOMツリーのあるノードを検索するには、documentオブジェクトから検索を開始する必要があります.最も一般的な検索はIDとTagNameによるものです.まずHTMLデータを用意します.
documentオブジェクトで提供されるgetElementById()とgetElementsByTagName()は、IDでDOMノードを取得し、Tag名でDOMノードのセットを得ることができる.'use strict';
var menu = document.getElementById('drink-menu');
var drinks = document.getElementsByTagName('dt');
var i, s, menu, drinks;
menu = document.getElementById('drink-menu');
menu.tagName; // 'DL'
drinks = document.getElementsByTagName('dt');
s = ' :';
for (i=0; i
documentオブジェクトには、現在のページのCookieを取得するクッキー属性があります.Cookieは、サーバから送信されるkey-valueの識別子です.HTTPプロトコルは無状態ですが、サーバーはどのユーザからの要求なのかを区別するために、Cookieで区別することができます.ユーザーがログインに成功すると、サーバからブラウザにCookieを送信します.例えば、user=ABC 123 XYZ(暗号化された文字列)...その後、ブラウザがこのウェブサイトにアクセスすると、要求ヘッダにこのCookieを添付します.サーバはCookieによってユーザーを分離できます.Cookieはまた、ウェブサイトのいくつかの設定、例えば、ページ表示の言語などを記憶することができる.JavaScriptは、現在のページのCookieにdocument.co okieを介して読み取り可能である.document.cookie; // 'v=123; remember=true; prefer=zh'
JavaScriptはページのCookieを読み取ることができるため、ユーザーの登録情報は通常Cookieにも存在しています.これはHTMLページに第三者のJavaScriptコードを導入することが許可されているからです.
...
された のJavaScriptに のあるコードがあれば、wwww.foo.comサイトから にwww.example.comサイトのユーザ を します.この を するために、サーバはCookieを する にhttpOnlyを ってもいいです.httpOnlyを したCookieはJavaScriptに み られません.この はブラウザによって され、 ブラウザはhttpOnlyオプションをサポートし、IE 6 SP 1からサポートを する. を するために、サーバー はCookieを する に、httpOnlyをずっと するべきです.history
historyオブジェクトはブラウザの を しています.JavaScriptはhistoryオブジェクトのback()またはforward()を び すことができます.ユーザがブラウザの「 」または「 」ボタンをクリックしたのに します.このオブジェクトは なレガシーですが、 のWebページでは、AJAXとページの が く、 にhistory.backを び すと、ユーザーは に りを じるかもしれません. がWebページの を した は、ログインページが した に、history.back()を び して、ログイン のページに そうとします.これは った です.どんな でも、historyという を うべきではないです.