投稿

3月, 2018の投稿を表示しています

XPagesでコピー/貼り付け禁止を設定してみよう

イメージ
皆さん、こんにちは。
3月になり花粉の飛散が本格化してきました。
毎年毎年、花粉対策の新しい商品が販売されたり手法が紹介されたりしますが、全員に有効なものなどなさそうですね。自分に合った療法をしていくしかなさそうです。
ということで、今日も花粉に悩まされています(笑)

さて、今日もXPagesの話題です。
Webページで文字列を入力するときに、コピーしてほしくないとか値を貼り付けてほしくないという時があるかと思います。
実際にメールアドレスを入力するページなど、値が間違っていたら困るときに、2回入力させて同じ値が入っているかどうかを確認することがあるでしょう。
この時に、貼り付けが可能であれば、間違った値が2回連続で入力されてしまう可能性があります。

こういったことを防ぐ方法の紹介です。
コピーを禁止する場合、"oncopy"というイベントに対して、"return false"を設定することで、そのイベントを強制終了させればいいのです。

XPagesでのやり方には2種類あります。
ページ全体に禁止の設定を施すのか、それとも各入力フィールドごとに設定を施すのかです。


1.ページ全体に設定を施す こちらは簡単です。
XPageの「onClientLoad」イベントに次の式を記述します。

document.body.setAttribute( "oncopy", "return false" );            // コピー禁止 document.body.setAttribute( "onpaste", "return false" );        // 貼り付け禁止 document.body.setAttribute( "oncontextmenu", "return false" );    // コンテキストメニュー禁止

これでページ全体でコピーや貼り付けができなくなります。
ちなみに、コンテキストメニューはマウスで右クリックしたときに表示されるメニューのことです。



2.各フィールドごとに設定を施す こちらはちょっと複雑です。
各入力フィールド(通常、編集コントロールボックス)にはイベント…

XPagesにreCAPTCHAを組み込んでみよう

イメージ
みなさん、こんにちは。

あっという間に3月になってしまいましたね。

さて、現在ノーツコンソーシアムのHP上では2018年度の研究会の申し込みが行われています。
リンクは【登録受付中】2018年度 研究会メンバー登録開始を参照してください。
この申し込みフォームはJotFormというサービスを使って作られているようです。

このフォームを見ていて気になったことがあります。

上図の赤枠で囲った部分!最近、色々な入力フォームで目にしますよね。ロボットではないよ!というのを示すための設定です。
こういうのって、XPagesでも使えないかな?って思ったので調べてみました。


XPagesで簡単に組み込めそうなロボット対策について調べたところ、Googleが提供するreCAPTCHAというものがありましたので、実際のXPagesアプリケーションに組み込んでみました。

大まかな手順は次の通りです。
1.サイトの登録
2.クライアント側の設定
3.サーバー側の設定

ではそれぞれ見ていきましょう。

1.サイトの登録 reCAPTCHAのサイトを開いたら、[Get reCAPTCHA]というボタンがあるはずなので、そこをクリックします。

すると、新規サイトの登録画面になるので、必要事項を入力/選択して[Register]をクリックします。
Label」 は任意の値を入力します。どのサイトで使うのかなど自分のためのメモとして利用します。
Choose the type of reCAPTCHA」では"reCAPTCHA V2"を選択します。
Domains」ではロボット対策の画面を埋め込むサイトのドメイン名を入力します。ここに入力したサイトでないとロボット対策は動かないので正しい値を入力しましょう。試していませんが、複数のドメイン名を入力できるようです。その場合、1行1ドメインの形で入力します。
Accept the reCAPTCHA Terms of Service.」は利用規約に同意します。ということなので、同意したらチェックします(当然のことながら、チェックしないと使えません)。

登録が成功すると、サイトキーやシークレットキーが発行されます。
ここで発行されたキーはreCAPTCHAのサイトに保存されるので焦って覚えておく必要はありませんので安心しまし…