PageSourceSearch

https://stanford-englishhomestudy.com/3.2/js/widget/widget_instagram.js

js stanford-englishhomestudy.com collected 2026-10-08 21:40:13 UTC 11,390 bytes, 280 lines download raw bytes

1$(function(){
2
3	function loadInstaW(j){
4		$('.widget_instagram01').each(function(){
5			var $count = 1;
6			var $tgt = $(this);
7			var $id = $tgt.data('id');
8			var $token = $tgt.data('token');
9			var $limit = $tgt.data('limit');
10			var $d_likecount = $tgt.data('likecount');
11			var $d_commentcount = $tgt.data('commentcount');
12			var $d_comment = $tgt.data('comment');
13			var $d_click = $tgt.data('click');
14			var $graphapi_url = 'https://graph.facebook.com/v15.0/';
15			var ranges = [
16				'\ud83c[\udf00-\udfff]',
17				'\ud83d[\udc00-\ude4f]',
18				'\ud83d[\ude80-\udeff]',
19				'\ud7c9[\ude00-\udeff]',
20				'[\u2600-\u27BF]'
21			];
22			function loadInsta(){
23				var $url = $graphapi_url+$id+'?fields=profile_picture_url,name,username,media.limit('+$limit*$count+'){caption,media_url,thumbnail_url,permalink,like_count,comments_count,media_type,children{id,media_url,thumbnail_url,media_type}}&access_token='+$token;
24				$.ajax({
25					type: 'GET',
26					url: $url,
27					dataType: 'json',
28				}).done(function(json){
29					var profilepicture = json.profile_picture_url;
30					var name = json.name;
31					var username = json.username;
32					var insta = json.media.data;
33					var lim = $limit*$count;
34					if($limit*$count > json.media.data.length){
35						lim = json.media.data.length;
36					}
37					$tgt.attr('data-name', name).attr('data-username', username).attr('data-profilepicture', profilepicture);
38					for(var i=$limit*($count-1); i<lim; i++){
39						var media_url = insta[i].media_url;
40						var thumbnail_url = insta[i].thumbnail_url;
41						var inst_href = insta[i].permalink;
42						var inst_cap = insta[i].caption;
43						if(inst_cap === undefined){
44							inst_cap = '';
45						}else{
46							if($d_click == 1){
47								inst_cap = inst_cap.replace(/[\"]/g,"");
48								inst_cap = inst_cap.replace(/\r?\n/g, '<br>');
49							}else{
50								inst_cap = inst_cap.substr(0, 70);//70文字
51								var reg = new RegExp(ranges.join('|'), 'g');
52								inst_cap = inst_cap.replace(reg, '');
53								inst_cap = inst_cap.replace(/[\"]/g,"");
54								inst_cap = inst_cap.replace(/\r?\n/g, '');
55							}
56						}
57						var like_count = insta[i].like_count;
58						var comments_count = insta[i].comments_count;
59						var type = insta[i].media_type;
60						var html;
61						if($d_click !== 1 && ($d_likecount == 1 || $d_commentcount == 1 || $d_comment == 1)){
62							html = '<div class="inner_item hide addinfo">';
63						}else{
64							html = '<div class="inner_item hide">';
65						}
66						if($d_click == 0){//インスタへリンク
67							if(type == 'VIDEO'){
68								html += '<span><a href="'+inst_href+'" target="_blank"><img src="'+thumbnail_url+'" alt="'+name+'" loading="lazy">';
69							}else{
70								html += '<span><a href="'+inst_href+'" target="_blank"><img src="'+media_url+'" alt="'+name+'" loading="lazy">';
71							}
72							if($d_likecount == 1 || $d_commentcount == 1 || $d_comment == 1){
73								html += '<div>';
74							}
75							if($d_likecount == 1 || $d_commentcount == 1){
76								html += '<ul>';
77							}
78							if($d_likecount == 1){
79								html += '<li><svg><use xlink:href="/images/icon.svg#icon-like"></use></svg>
79'+like_count+'</li>';
80							}
81							if($d_commentcount == 1){
82								html += '<li><svg><use xlink:href="/images/icon.svg#icon-comment"></use></svg>'+comments_count+'</li>';
83							}
84							if($d_likecount == 1 || $d_commentcount == 1){
85								html += '</ul>';
86							}
87							if($d_comment == 1){
88								html += '<p>'+inst_cap+'</p>';
89							}
90							if($d_likecount == 1 || $d_commentcount == 1 || $d_comment == 1){
91								html += '</div>';
92							}
93						}else if($d_click == 1){//ポップアップ
94							if(type == 'CAROUSEL_ALBUM'){
95								var inst_child = '';
96								for(var j=0; j<insta[i].children.data.length; j++){
97									inst_child += insta[i].children.data[j].media_type
98									if(insta[i].children.data[j].media_type == 'VIDEO'){
99										inst_child += '|';
100										inst_child += insta[i].children.data[j].thumbnail_url;
101									}
102									inst_child += '|';
103									inst_child += insta[i].children.data[j].media_url;
104									inst_child += ',';
105								}
106								if(inst_child.slice(-1) == ','){
107									inst_child = inst_child.slice(0, -1);
108								}
109								html += '<span data-type="'+type+'" data-cap="'+inst_cap+'" data-like="'+like_count+'" data-comments="'+comments_count+'" data-comments="'+$d_comment+'" data-child="'+inst_child+'"><a href="'+inst_href+'" target="_blank"><img src="'+media_url+'" alt="'+name+'" loading="lazy">';
110							}else if(type == 'VIDEO'){
111								var inst_child = '';
112								inst_child += 'VIDEO|';
113								inst_child += thumbnail_url;
114								inst_child += '|';
115								inst_child += media_url;
116								html += '<span data-type="'+type+'" data-cap="'+inst_cap+'" data-like="'+like_count+'" data-comments="'+comments_count+'" data-comments="'+$d_comment+'" data-child="'+inst_child+'"><a href="'+inst_href+'" target="_blank"><img src="'+thumbnail_url+'" alt="'+name+'" loading="lazy">';
117							}else if(type == 'IMAGE'){
118								var inst_child = '';
119								inst_child += 'IMAGE|';
120								inst_child += media_url;
121								html += '<span data-type="'+type+'" data-cap="'+inst_cap+'" data-like="'+like_count+'" data-comments="'+comments_count+'" data-comments="'+$d_comment+'" data-child="'+inst_child+'"><a href="'+inst_href+'" target="_blank"><img src="'+media_url+'" alt="'+name+'" loading="lazy">';
122							}
123						}
124						html += '</a></span></div>';
125						$tgt.find('.wrapper_item').append(html);
126						$tgt.find('img').eq(i).load(function(){
127							$tgt.removeClass('loadingjson');
128							$(this).parents('.hide').removeClass('hide');
129						});
130					}
131					$tgt.find('.contents_btn01 a').eq(1).attr('href', 'https://www.instagram.com/'+username);
132					if($limit*$count >= lim+$limit){
133						if(!$tgt.find('.nomore').length){
134							$tgt.find('.wrapper_item').append('<div class="nomore">これ以上投稿はありません。</div>');
135						}
136						$tgt.removeClass('loadingjson');
137					}
138					$count++;
139				});
140			}
141			if(!$tgt.find('.wrapper_item .inner_item').length){
142				loadInsta();
143			}
144			
145			$tgt.find('.insta_more').on('click', function(){
146				if(!$tgt.find('.nomore').length){
147					$(this).parents('.widget_instagram01').addClass('loadingjson');
148				}
149				loadInsta();
150				return false;
151			});
152		});
153	}
154	loadInstaW();
155
156	/*------*/
157
158	$('body').on('click', '.widget_instagram01 .inner_item span[data-cap] a', function(){
159		instaPop($(this), 0);
160		return false;
161	});
162
163	function instaPop($t, tgl){
164		$tgt = $t.parents('.widget_instagram01');
165		var $d_likecount = $tgt.data('likecount');
166		var $d_commentcount = $tgt.data('commentcount');
167		var $d_comment = $tgt.data('comment');
168		var profilepicture =  $tgt.data('profilepicture');
169		var name =  $tgt.data('name');
170		var username =  $tgt.data('username');
171		var alt = $t.find('img').attr('alt');
172		var link = $t.attr('href');
173		var like_count = $t.parent('span').data('like');
174		var comments_count = $t.parent('span').data('comments');
175		var cap = $t.parent('span').data('cap');
176		var data_child =  $t.parent('span').data('child');
177		var res = data_child.split(',');
178		var html = '';
179		if($d_likecount == 1 || $d_commentcount == 1 || $d_comment == 1){
180			html += '<div class="i_txt">';
181			if($d_comment == 1){
182				html += '<div class="i_head"><div><a href="https://www.instagram.com/'+username+'/" target="_blank"><img src="'+profilepicture+'" alt="'+name+'" class="no"></a></div><p><span><a href="https://www.instagram.com/'+username+'/" target="_blank">
182'+username+'</a></span><span><a href="https://www.instagram.com/'+username+'/" target="_blank">'+name+'</a></span></p></div><div class="i_body">'+cap+'</div>';
183			}
184			html += '<div class="i_foot">';
185			if($d_likecount == 1 || $d_commentcount == 1){
186				html += '<ul>';
187			}
188			if($d_likecount == 1){
189				html += '<li><svg><use xlink:href="/images/icon.svg#icon-like"></use></svg>'+like_count+'</li>';
190			}
191			if($d_commentcount == 1){
192				html += '<li><svg><use xlink:href="/images/icon.svg#icon-comment"></use></svg>'+comments_count+'</li>';
193			}
194			if($d_likecount == 1 || $d_commentcount == 1){
195				html += '</ul>';
196			}
197			html += '<a href="'+link+'" target="_blank">View on Instagram</a></div>';
198			html += '</div>';
199		}
200		
201		if(tgl == 0){//ポップアップa
202			$('body').append('<div class="popup" id="insta_pop"><div class="popimg no"><div><div class="popimgwrap"><div class="slide"></div>'+html+'</div><div class="loader"></div><ul class="insta_nav"><li class="insta_prev disabled"></li><li class="insta_next disabled"></li></ul></div></div><div class="popclose">×</div></div>');
203			$t.parents('.inner_item').addClass('active');
204			$('.popup:not(.-w-modal)').css({opacity: 0}).stop().animate({opacity: 1}, 400, 'easeInOutCubic');
205		}else{//ナビ操作
206			$('.popimgwrap').remove();
207			$('#insta_pop .popimg>div').append('<div class="popimgwrap"><div class="slide"></div>'+html+'</div>');
208		}
209		if($t.parents('.inner_item.active').next('.inner_item').length){
210			$('.insta_next').removeClass('disabled');
211		}else{
212			$('.insta_next').addClass('disabled');
213		}
214		if($t.parents('.inner_item.active').prev('.inner_item').length){
215			$('.insta_prev').removeClass('disabled');
216		}else{
217			$('.insta_prev').addClass('disabled');
218		}
219
220		function loadAllImages(urls){
221			return Promise.all(urls.map(url => {
222				var res2 = url.split('|');
223				return loadImage(res2[1]).then(() => {
224					if(res2[0] == 'IMAGE'){
225						$('#insta_pop div.slide').append('<div><img src="'+res2[1]+'" alt="'+alt+'"></div>');
226					}else if(res2[0] == 'VIDEO'){
227						$('#insta_pop div.slide').append('<div><video src="'+res2[2]+'" poster="'+res2[1]+'" controls=""></video></div>');
228					}
229				});
230			}));
231		}
232		loadAllImages(res).then(() => {	
233			//onsole.log(html);
234			$('#insta_pop div.slide').slick({
235				speed: 400,
236				cssEase: 'ease-in-out',
237				slidesToShow: 1,
238				slidesToScroll: 1,
239				dots: true,
240				infinite: false,
241				edgeFriction: 0,
242			});
243			ResizeInsta();
244			$('.popimgwrap').stop().animate({opacity: 1}, 400, 'easeInOutCubic');
245		});
246	}
247
248	function loadImage(url) {
249		return new Promise((resolve, reject) => {
250			var img = new Image();
251			img.onload = () => resolve(url);
252			img.onerror = () => reject(url);
253			img.src = url;
254		});
255	}
256
257	function ResizeInsta(){
258		$('#insta_pop .i_body').css({height: $('#insta_pop .popimgwrap').height() - ($('#insta_pop .i_head').height() + parseInt($('#insta_pop .i_head').css('padding-top'), 10) + parseInt($('#insta_pop .i_head').css('padding-bottom'), 10) + $('#insta_pop .i_foot').height())});
259	}
260	$(window).on('resize', ResizeInsta);
261	
262	$(document).on('click', function(event){
263		if(!$(event.target).closest('#insta_pop .popimgwrap, #insta_pop .insta_nav').length){
264			$('.widget_instagram01 .inner_item').removeClass('active');
265			$('#insta_pop.popup').stop().animate({opacity: 0}, 400, 'easeInOutCubic', function(){
266				$('#insta_pop.popup').remove();
267			});
268		}
269	});
270
271	$('body').on('click', '#insta_pop .insta_prev', function(){
272		$('.widget_instagram01 .inner_item.active').removeClass('active').prev().addClass('active');
273		instaPop($('.widget_instagram01 .inner_item.active span[data-cap] a'), 1);
274	});
275	$('body').on('click', '#insta_pop .insta_next', function(){
276		$('.widget_instagram01 .inner_item.active').removeClass('active').next().addClass('active');
277		instaPop($('.widget_instagram01 .inner_item.active span[data-cap] a'), 2);
278	});
279	
280});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.