スタートページ>
Javascript>
リンク元HTML
例1 無名称でのパラメタ渡し パラメタが1個の場合
このページ:link-para-receive1.html
このHTMLは、index.htmlから「<a href="link-para-receive1.html?日本語" >」で呼び出されました。
そのパラメタ部分(「?」の後ろの部分)を、
para = "日本語";
に入れる処理をします。
このHTMLおよびリンク元のHTMLの文字コードは UTF-8 です。
説明
<script type="text/javascript">
function init() {
var para = decodeURIComponent(location.search.split("?")[1]);
document.getElementById('表示場所').innerHTML = "para=" + para;
}
</script>
<body onLoad="init()">
<div id="表示場所" class="red"></div>
- location
現在表示しているURLに関する情報を持つオブジェクトです。
- location.search
?以降の文字列を指します。ここでは「?日本語」になります。
- location.search.split("?")[1]
xxx.split("y") は、文字列 xxx を、y を分割記号として配列にします。
"?日本語".split("?")
配列要素[0] = "" // ?の左の部分
配列要素[1] = "日本語" // ?の右の部分
なので、location.search.split("?")[1] は "日本語" になります。
- decodeURIComponent(location.search.split("?")[1])
Javascriptでは、パラメタを送るときに、半角英数字以外の文字(日本語など)は、特定の文字コードに変換されています。上の「日本語」は実は「%E6%97%A5%E6%9C%AC%E8%AA%9E」になっています。
decodeURIComponent()は、それを UTF-8 にエンコードします。
locationオブジェクトの主要プロパティ
- location.href
リンク先への移動(「呼出元(index)」参照)
- location.search
リンク元から受け取ったパラメタ文字列(上述)
- location.protocol
このページをアクセスするプロトコル http:
- location.hostname
このページが存在するサーバ名
- location.pathname
スタートページからのパス
すなわち、このページを呼び出すURL(絶対指定形式)は、
location.search + location.hostname + location.pathname
となります。