「SE業務」カテゴリーアーカイブ

[JavaScript] ブラウザの戻るボタンを無効化する

ブラウザの戻るボタンを無効化する方法を調査したので、そのときのメモ。

クライアントサーバシステムだった社内システムをWEBシステムにリプレースする案件でこういった要件を見かける。顧客は、クラサバのときの使い心地をそのままにWEBシステムにしようとするので、こんな要件がでてしまう。

少し前まで完璧にはできなかったようだが、最近になってHTML5+jQueryの組みあわせでできるようになったみたい。

〇サンプルソースはこちら

https://jsfiddle.net/saimjcf/5atzrp26/

「RUN」を押下すると、JavaScriptがロードされるので、ブラウザの戻るボタンを押してみてください。無効になっていて、画面遷移が発生しないはず。

この中でブラウザの戻るボタンを無効化しているのは以下の部分です。

〇仕組みの話

まず、上記サンプルソースが画面上にロードされると、history.pushState(null, null, null)メソッドでブラウザの履歴の先頭に新しい履歴を一つ追加します。このとき第3引数がnullなので、追加された履歴は自分自身を指していることになります。

そして、戻るボタンが押下されたら”popstate”イベントが発生しますので、その”popstate”イベントが発生したときの処理として、再度history.pushState(null, null, null)を実行して、ブラウザの履歴の先頭に新しい履歴を一つ追加します。要は、ブラウザの履歴を操作しています。

hisotry APIの詳細はこちら
https://developer.mozilla.org/ja/docs/Web/Guide/DOM/Manipulating_the_browser_history

※サンプルソースは、Firefox、Google Chrome、IEのみで動作確認しました。


NextcloudをDockerで構築する方法

個人でDropboxなどのオンラインストレージを利用していますが、容量が限られていたり、容量を増やそうとすると月額料金が掛かってしまいます。自前でサーバを構築しようとしたときに、Dropboxとほぼ同じように使えてかつ無料なソフトがいくつかあります。今回は、名前的にイケてそうなNextcloudをDockerで構築してみました。

インストール手順

①Nextcloud公式サイト(https://nextcloud.com/)にアクセスする。
「Get Nextcloud」>「Server packages」を選択する。

②「Appliances」>「Get Docker image」を選択する。
ちなみにここにで、Docker以外のインストーラーを取得できる。

③Docker HubのNextcloudのページに飛ぶので、「Using the apache image」の欄に書かれたコマンドを控える

docker run -d -p 8080:80 nextcloud

④Dockerを起動して、③のコマンドを実行する。
最初の実行時にイメージがダウンロードされます。

⑤「dcoker ps -a」コマンドでNextcloudのコンテナが起動していることを確認する。

⑥「http://<docker仮想マシンのIPアドレス>:8080/」にアクセスする。
(IPアドレスですが、ちなみに以下の例だと、「192.168.99.100」)

⑦管理者アカウントを作成します。IP/パスワードを入力して、「セットアップを完了します」を押下する。データベースの構築などが始まります。

⑧完了すると、管理者アカウントでログインされた状態となる。

あとは、使い方はDropBoxと同じような感じです。

今回は、Dockerで構築しましたが、会社で運用しようと思ったら、WEBサーバやDBサーバを別のサーバやコンテナで構築しなきゃです。


Docker Toolboxのインストール方法(プロキシ対応あり)

WindowsのPCでDockerを使うには、2つのツールが用意されています。
・Docker for Windows
・Docker Toolbox

ただし、Docker for Windowsを利用するには、以下の3つの要件をクリアしている必要があります。
①Windows 10 Pro または Enterprise(64bit)のPC
②VirtualBoxなどの仮想化ソフトをインストールしていない
③Hyper-Vを有効にしている

つまり、本来Linuxカーネルの技術を利用している都合上、Hyper-Vを利用する必要があるみたい。現に、Docker ToolboxをインストールするとVirtualBoxも一緒にインストールされて、そのVIrtualBoxで稼働するLinux上でDockerを動かす仕組みみたい。

前置きが長くなりましたが、私のPCは要件を満たしていないので、Docker Toolboxをインストールしました。手順は↓

Docker Toolboxインストールの流れ

こちらにアクセスして、インストーラーをダウンロードします。https://docs.docker.com/toolbox/overview/

あとはインストーラーを起動して、以下の流れで完了。

【プロキシ環境で使う場合は・・・・】
「C:\Program Files\Docker Toolbox\start.sh」に以下を追記します。
これにより、Docker Toolboxがプロキシ経由で動作します。

HTTP_PROXY=http://proxy-host:port/
HTTPS_PROXY=http://proxy-host:port/
NO_PROXY=127.0.0.1

あとは、デスクトップ上に作成されたDocker Quickstart Terminal のショートカットからターミナルを起動するだけ。

あとは「docker version」と打って、結果が返ってくればOK。