新米SE、マーケティングを学ぶの巻

Web系のプログラミングの記事や、マーケティングについて書いていきます。

JQueryプラグイン、Link Scraperに編集機能を付けてみる。

Link Scraperとはなんぞやという方はこちらの記事が参考になります。
facebookのようにリンク先のURLを入力するとリンク先の情報が表示されるjQueryプラグイン「Link Scraper TextBox」

さて、Link Scraperは便利なんだけどそのままだとちょっと使いづらいなーと思い、取り合えず編集機能だけ付けてみたゞ(`')、
こんな感じになります。

f:id:se312:20150416195836j:plain


更新ボタンを押してPOSTを押すと、その箇所が更新されます。
更新ボタンを押さずにPOSTすると新規に追加されます。

以下、ソースコードです。

HTML

<div id="container">
    <div id="box">
        
        <div id="linkScrapper"></div>
    </div>
    <div id="displayArea"></div>
</div>


肝心のJavascriptです。
Javascript

//Input variables
var scrapper_total_width = 400;
var scrapper_image_width = 100;
var scrapper_image_height = 100;

//Output variables - should be global
var scrapperLinkURL; //contains a URL if present in the scrapperText
var scrapperLinkTitle; //contains the title of the URL webpage
var scrapperLinkDescription; //contains a short desription of the URL
var scrapperLinkImageURL; //contains a URL of the image selected
var scrapperText; //contains the text entered in the textarea

var countButton = 1;

function displayScrapperData(){
	//POSTボタンから更新箇所を取得
	var buttonNum = $("#scrapper_post_button").data("num");

	if(buttonNum == false || buttonNum == undefined){
		//prependではなくてappendにしてます 各要素にIDを割りふる
		$('#displayArea').append('<hr/><br/><div style="margin:0px auto; text-align:center;"><img id="img'+ countButton +'" src="'+scrapperLinkImageURL+'"/></div>'+'<br/><b>Text: <span id="text'+ countButton +'">'+scrapperText+'</span></b><b>URL: </b><span id="url'+ countButton +'">'+scrapperLinkURL+'</span><br/><b>Title: </b><span id="title'+ countButton +'">'+scrapperLinkTitle+'</span><br/><b>Description: </b><span id="description'+ countButton +'">'+scrapperLinkDescription+'</span><br/><b>Image Source: </b><span id="imageSource'+ countButton +'">'+scrapperLinkImageURL+'</span><br/>');
		//更新ボタンを作成 data-buttonにボタンに番号を割り振る
		$('#displayArea').append('<br/><button class="change" data-button='+ countButton +'>更新</button><hr/><br><br>');

		//更新ボタンのクリックイベントを登録
		$(".change").click(function() {
			//テキストボックスにフォーカスを当てる
			$("#linkBox").focus();
			//更新ボタンの番号を取得する
			var num = $(this).data("button");
			//POSTボタンに押された更新ボタンの番号を記憶させる。
			$("#scrapper_post_button").data("num", num );
		});

		countButton++;
	}
	else{
		//更新する
		$("#url"+buttonNum).html(scrapperLinkURL);
		$("#title"+buttonNum).html(scrapperLinkTitle);
		$("#description"+buttonNum).html(scrapperLinkDescription);
		$("#img"+buttonNum).attr('src',scrapperLinkImageURL);
		$("#text"+buttonNum).html(scrapperText);
		$("#imageSource"+buttonNum).html(scrapperLinkImageURL);
		//POSTボタンを初期化
		$("#scrapper_post_button").data("num", false);	
	}

}


Link Scraper、とっても便利そうですゞ(`')、


【2015/5/16 追記】
デモページを作成しました!
Link Scraperに編集機能を付けてみる:デモページ