JAVASCIPTの構造体もどき。
構造体のようにオブジェクトとして扱うことで、複数の変数を1つのオブジェクトに格納できる。
これを配列に入れれば多くの変数をまとめて扱える。
自分のファイル名(URL)を取得
例えばこんな感じのURL「https://www.XXX.com/index.html」(架空)があるとして、index.htmlにJAVASCRIPT、window.location.hrefを書いていたとすれば「https://www.XXX.com/index.html」
を取得します。
index.htmlがないときはhttps://www.XXX.comを取得することになります。
・ファイル名を取得
window.location.href.split(‘/’).pop();
splitでスラッシュを区切りにして分割します。
そしてpopで最後の分割であるindex.htmlを取得してファイル名を取得することになります。
index.htmlがないときは、たぶんwww.XXX.comが表示されるはず。
なので、URLを取得したいときは
window.location.href
までを記述すればOKみたい
ファイル名を取得する必要性は、あまりありませんが、個別のファイルになにか仕組みを入れておいて特別なメッセージを表示させるとか、あるページを開こうとしたときに、IE11、クロムならOKだけど、サファリやOperaだったらアラートを表示させたいとかに使えるでしょう。その際は、URLの判定用の配列を作成してどのURLならOKとして、事前に登録しておく必要があります。
今回はそこまで書いていません。またJavascriptは外部ファイルにしておくほうが今後利便性は高いですが、ブログ記事のためにわかりやすいく扱いやすいように同じファイルの中に記載しています。
//参考にしたサイト
//https://b.0218.jp/20140404132553.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>JS構造体もどきと自分のファイル名を取得</title> <script> //構造体のように使ってみた function User(id, name, point){ this.id = id; this.name = name; this.point = point; } function getFileName() {//javascript ファイル名 取得 自分 return window.location.href.split('/').pop(); } </script> </head> <body> ファイル名を取得するスクリプト<br> <script type="text/javascript"> var testFilename; testFilename=getFileName(); document.write("ファイル名は"+testFilename); </script> ここに名前が表示される<br> <div id="output"></div> <script type="text/javascript"> //scriptの位置に注意する。id=outputが下の方だとエラーになる var tag_element = document.getElementById("output"); var test01 = new User(1,"taro",20); tag_element.innerHTML = test01.name; </script> </body> </html> |