LoginSignup
3
2

webサイトの「URLを共有する」を実現するために使ったJavaScriptライブラリをまとめた

Last updated at Posted at 2019-12-24

##前提(本質的には関係ないです)

  • Spring Bootを利用したwebアプリケーションです。
  • テンプレートエンジンはThymeleafを使用しています。
  • HTMLは必要な部分のみ記載しています。
  • jQueryを使用しています。

##QRコード作成
###qrcode-generator

https://cdnjs.com/libraries/qrcode-generator
https://www.npmjs.com/package/qrcode-generator

###具体例

send_by_qr.html
<!-- ~~ -->
<div class="form-group offset-sm-3 col-sm-3" id="qrcode">
	ここにQRコードが入ります
</div>
<!-- サーバサイドから渡されたURLをいったん保持します -->
<input type="hidden" th:value="${qr}" id="qrvalue" />
<!-- ~~ -->
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/qrcodegenerator/x.x.x/qrcode.min.js"></script>
make_qr.js
// 画面表示時にid指定したDOM要素のvalueからQRコードを生成します。
$(function() {
	var qr = qrcode(0, 'M');
	if ($('#qrcode').length > 0) {
		var qr = qrcode(0, 'M');
		qr.addData($('#qrvalue').val());
		qr.make();
		$('#qrcode').html(qr.createImgTag(4, 16));
	}
});

##LINEで共有
###具体例

send_by_line.html
<!-- ~~ -->
<a id="icon_line" class="任意のCSS"><i class="任意のCSS"></i>LINEで共有する</a>
<!-- ~~ -->
send_by_line.js
$(function() {
	$('#icon_line').on('click', function(){
		window.open("https://social-plugins.line.me/lineit/share?url=" + encodeURIComponent($('#qrvalue').val()),
				"_blank",	"top=50,left=50,width=500,height=500,scrollbars=1,location=0,menubar=0,toolbar=0,status=1,directories=0,resizable=1");
		return false;
	});
});

##クリップボードにコピー
###clipboardjs

https://clipboardjs.com/
https://haniwaman.com/clipboard-js/#clipboardjs

####具体例

send_by_clipboard.html
<!-- ~~ -->
<p class="form_label mb32">
	<textarea id="text_area_qr" th:text="${qr}" class="form_control">https://example.com</textarea>
</p>
<p>
	<button class="任意のCSS" data-clipboard-target="#text_area_qr">クリップボードにコピー</button>
</p>
<input type="hidden" th:value="${qr}" id="qrvalue" />
<!-- ~~ -->
<!-- clipboardjsはライブラリをダウンロードしてよしなに配置しています。 -->
<script th:src="@{/js/clipboard.min.js}"></script>

send_by_clipboard.js
$(function() {
	new ClipboardJS('.btn-clipboard').on('success', function(e) {
          // ぬるっと現れてふわっと消える
	  $('.clipboard-success').fadeIn(100).fadeOut(2000);
	});
});
3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2