アフィリエイト広告を利用しています

広告

posted by fanblog

2021年05月20日

共通のJavaScriptコードはサイドバーに設置/ブログでJavaScriptで計算

前回記事で、足し算と掛け算を計算するページが完成しました。
  ↓
 計算フォームの見た目を整える/ブログでJavaScriptで計算
SC20210521102026.png

そのページでは、JavaScript コードはすべてその記事ページの中に入れてあります。


これを元に計算ページをいろいろ作っていくとすると、計算部分の JavaScript コードはそれぞれのページで違ってきますが、計算結果をコピーする部分の JavaScript コードは、共通で利用できそうです。
数値入力ボックスでIMEを半角入力モードにする の記事でそれを試そうとして、その前の コピーする計算結果の数字は3桁区切りのカンマなしにする の記事に設置してある「計算結果をコピーする JavaScript コード」を利用しようとしましたが、その方法ではどうもうまく機能しないようでした。


共通で利用できるものや少し規模の大きい JavaScript コードは、ファイル化してブログにアップロードするという方法がありますが、無料で利用できるブログでは JavaScript コードをアップロードできないものもあると思います。
そこで、別のブログで試した方法が、ブログのサイドバーに設置する方法です。
試したのは Blogger で、HTML/JavaScript のガジェットに JavaScript コードを書いてサイドバーに設置することで、各記事ページの計算フォームから呼び出して機能しています。
他のブログでは、例えば、ファンブログ・Seesaaブログの場合はコンテンツ→自由形式、FC2ブログの場合はプラグイン→フリーエリアに JavaScript コードを書いて、サイドバーに設置するということになります。
おそらく、それでうまく機能するはずです。
このページで、それを試してみます。


[答えをコピー]ボタンの JavaScript をサイドバーに設置した計算フォーム


A:
B:

A+B=
A×B=

↑ ここに計算のためのフォームのコードと、JavaScript のコードを入れています。
JavaScript は表示されず、計算のためのフォームだけが表示されています。
見た目は前回記事:計算フォームの見た目を整える/ブログでJavaScriptで計算 の計算フォームと全く同じですが、[答えをコピー]ボタンの JavaScript をサイドバーに設置して利用するため、その分の JavaScript はここには入っていません。



変更したコードの解説(フォーム)


今回の計算フォームのコードは、↓ このようになっています。

<form action="#" name="calformTasuKakeruV7">
A:<input class="inputbox1" type="tel" name="a" value="">
B:<input class="inputbox1" type="tel" name="b" value="">
<table>
<tr>
<td><input class="keisanbutton" type="button" name="keisan" value="計算" onClick="calTasuKakeruV7();"></td>
<td><input class="keisanbutton" type="reset" name="reset" value="クリア"></td>
</tr>
</table>
<table>
<tr>
<td align="right">A+B=</td>
<td><input class="inputbox2" type="text" id="answer1" value=""></td>
<td><input class="keisanbutton" type="button" value="答えをコピー" onClick="AnswerCopy1();"></td>
<td><input class="inputbox3" type="text" id="answer1a" value=""></td>
</tr>
<tr>
<td align="right">A×B=</td>
<td><input class="inputbox2" type="text" id="answer2" value=""></td>
<td><input class="keisanbutton" type="button" value="答えをコピー" onClick="AnswerCopy2();"></td>
<td><input class="inputbox3" type="text" id="answer2a" value=""></td>
</tr>
</table>
</form>

赤色部分が今回変更したところです。
V7 はこれまでと同じで、ブログ内で名前の重複を避けるためです。


[答えをコピー]ボタンで呼び出す JavaScript の名前は、これまでの AnsCopy1V6 から 共通の Script らしいAnswerCopy1・AnswerCopy2 に変えました。
これによって、サイドバーに設置した JavaScript が機能していることも確認できます。


id を ans1,2,1a,2a から answer1,2,1a,2a への変更は特に必要のないものですが、AnswerCopy1,2 の変更に合わせておきました。



変更したコードの解説(JavaScript・このページに設置したもの)


今回のこのページに設置した JavaScript のコードは、↓ このようになっています。

<script language="javascript">
function calTasuKakeruV7()
{
// フォームで入力したデータABを変数に代入
inputValueA = document.calformTasuKakeruV7.a.value - 0;
inputValueB = document.calformTasuKakeruV7.b.value - 0;
// 変数を使って計算
answer1 = inputValueA + inputValueB;
answer2 = inputValueA * inputValueB;
// 計算結果をフォームに出力
document.calformTasuKakeruV7.answer1.value = answer1.toLocaleString();
document.calformTasuKakeruV7.answer2.value = answer2.toLocaleString();
document.calformTasuKakeruV7.answer1a.value = answer1;
document.calformTasuKakeruV7.answer2a.value = answer2;
}
</script>

赤色部分が変更か所ですが、いずれも計算フォームで変更した名前に合わせた変更です。


[答えをコピー]ボタンで呼び出す JavaScript は、サイドバーに設置するため、ここでは削除しています。



[答えをコピー]ボタンで呼び出す JavaScript をサイドバーに設置する


ここファンブログでの説明になりますが、他のブログでも似たようなものです。


1)ブログの管理ページを開いて、[デザイン]→[コンテンツ]を開きます。
SC20210520170647.png
Seesaaブログはファンブログと同じです。
Blogger では[レイアウト]→[ガジェットを追加]
FC2ブログでは[設定]→[プラグインの設定]になります。


2)[便利機能]の中の[自由形式]をサイドバーの一番下に、ドラッグして設置します。
SC20210520170254.png
Seesaaブログはファンブログと同じです。
Blogger では[HTML/JavaScript]
FC2ブログでは[公式プラグイン追加]→[拡張プラグイン]→[フリーエリア]になります。


3)サイドバーに設置した[自由形式]の歯車アイコンをクリックします。
SC20210520170516.png


4)タイトルに「JavaScript」など分かりやすい名称を入れて、コード入力部に JavaScript コードを入力します。
[保存する]ボタンをクリックします。
SC20210520171338.png


5)[閉じる]ボタンをクリックします。
SC20210520173807.png
「保存されていない内容は破棄されます。よろしいですか?」と聞いてきますが、4)で保存済みなので、そのまま[OK]ボタンをクリックします。
SC20210520173837.png


6)サイドバーに設置した JavaScript コードの説明

<script language="javascript">
// 計算結果をコピー
function AnswerCopy1() {
var copyTarget = document.getElementById("answer1a");
copyTarget.select();
document.execCommand("Copy");
copyTarget.blur();
}
function AnswerCopy2() {
var copyTarget = document.getElementById("answer2a");
copyTarget.select();
document.execCommand("Copy");
copyTarget.blur();
}
</script>
前回記事で記事ページに設置した JavaScript コードと基本的には同じです。
赤色部分が変わった部分になりますが、いずれも計算フォームで変更した名前部分を変えただけになっています。


その他


サイドバーに設置するといっても、ブログの画面上には JavaScript 自体は何も表示されません。
あとは、それぞれの記事ページの計算フォームのコードで、AnswerCopy1,2、answer1a,2a の名前を同じにすれば、サイドバーに設置した JavaScript が共通で利用できるということになります。


JavaScript で計算ページ関連記事の一覧

にほんブログ村 IT技術ブログ フリーソフトへ
この記事へのコメント
コメントを書く

お名前: 必須項目

メールアドレス:


ホームページアドレス:

コメント: 必須項目

この記事へのトラックバックURL
https://fanblogs.jp/tb/10738352

※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック
ブログ内を検索
ファン

最新記事
カテゴリー
最新コメント
ツイッター
広告設置のお知らせ

当ブログは、Amazonアソシエイト・プログラムの参加者です。
(Amazonアソシエイト・プログラムは、amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムです)
記事内で使用している画像の一部は、Amazonの商品画像を使用しており、その商品へのリンクになっています。

また、その他のアフィリエイト・サービス・プロバイダなどの広告も表示しています。
当ブログをご覧の際は、cookie を有効にし、Webブラウザの広告ブロック機能を使用しないで、ご覧いただきますようにお願いいたします。

プロフィール
ぽん太親父さんの画像
ぽん太親父
建築関係の小さな事務所で、他に適当な人間がいないことから、コンピューター関連の担当をさせられています。 趣味でけっこう長い間パソコンを使っていますが、ちゃんと勉強していないので、うまくいかなくて冷や汗をかくこともしばしば。
プロフィール
×

この広告は30日以上新しい記事の更新がないブログに表示されております。