$(document).ready(function(){ var lang = $("#hdnLang").val(); if(lang == undefined){ lang = 'JP'; } if($("#manualTop")[0] == undefined){ $("#chk_manualTop").parent("li").remove(); } document.onkeydown = function (e){ var kc = e.keyCode; var al = document.activeElement; if($(al).is("input")){ // フォーカスがテキストボックスにある場合 return true; }else if($(al).parents("#contentAreaWrap").length > 0){ // フォーカスがコンテンツにある場合 var m = Math.ceil($("#content").height() / 20); //スクロール幅 switch(kc){ case 38: // 「↑」 $("#contentArea").scrollTop($("#contentArea").scrollTop()-m); break; case 40: // 「↓」 $("#contentArea").scrollTop($("#contentArea").scrollTop()+m); break; } }else if(al.id == 'bookmark' || $(al).parents("#bookmark").length > 0){ // フォーカスが目次にある場合 switch(kc){ case 38: // 「↑」 if($("#btnPrev").is(":visible")){ return myPushState($("#btnPrev").attr('href')); } break; case 40: // 「↓」 if($("#btnNext").is(":visible")){ return myPushState($("#btnNext").attr('href')); } break; } } switch(kc){ case 37: // 「←」 if($("#btnPrev").is(":visible")){ $("#btnPrev")[0].click(); } break; case 39: // 「→」 if($("#btnNext").is(":visible")){ $("#btnNext")[0].click(); } break; } }; if($.trim($("#footer .copyRight").text()) == ''){ $("#footer .copyRight").text("© "+ (new Date()).getFullYear() +" Shimadzu Corporation. All rights reserved. "); } $('#sidetabs a').click(function () { $(this).tab('show'); return false; }) // レフトメニュー開閉 $('#btnToggleMenu').click(function () { $("#sidebar").toggleClass('show'); if($("#sidebar").hasClass('show')){ $("#contentScreen").show(); $($("#sidetabs li.active a").attr("href")).focus(); }else{ $("#contentScreen").hide(); } }); $("#contentScreen").click(function(){ $(this).hide(); $("#sidebar").removeClass('show'); }); function loadManualTop(){ if($("#manualTop")[0] != undefined){ $("#bookmark a").removeClass('subactive'); $("#bookmark a").removeClass('active'); $("#bookmark .submenu").each(function(){ $(this).prev("a").removeClass('expand'); $(this).slideUp('fast'); }); $("#content").html(''); // コンテンツを表示領域にコピー $("#content").append($("#manualTop").html()); $("#contentArea").scrollTop(0); $('#btnPrev').attr('href', ''); $('#btnPrev').hide(); var next = $($("#bookmark .nav-sidebar a")[0]); $('#btnNext').attr('href', next.attr('href')); $('#btnNext').show(); $(".pankuzu").remove(); }else{ var id = $("#contentsList section")[0].id; loadContent(id); } } var before_id = null; function loadContent(id, hl, hm, refid, hi){ if(id == undefined){ return; } // 自身に対応するレフトメニューを特定する var href = id; if(refid != undefined){ href += "?refid=" + refid; } var leftMenu = $("#bookmark a[href='#" + href + "']"); if(leftMenu.length == 0){ leftMenu = $("#bookmark a[href='#" + id + "']"); if(leftMenu.length == 0){ return; } } // 自身の親メニューにのみサブアクティブクラスを付与する $("#bookmark a").removeClass('subactive'); leftMenu.parents(".submenu").each(function(){ $(this).prev("a").addClass('subactive'); }) // 自身にのみアクティブクラスを付与する $("#bookmark a").removeClass('active'); leftMenu.addClass('active'); // 自身とその親以外のサブメニューを全て閉じる $("#bookmark .submenu").each(function(){ if($(this).prev("a").hasClass('active')){ // 現在表示中のメニューの場合 if($(this).prev("a").hasClass('subClose')){ // サブメニューを閉じる $(this).prev("a").removeClass('expand'); $(this).slideUp('fast'); }else{ // サブメニューを開く $(this).prev("a").addClass('expand'); $(this).slideDown('fast'); } }else if($(this).prev("a").hasClass('subactive')){ // 現在表示中のメニューの親メニューの場合 // サブメニューを開く $(this).prev("a").addClass('expand'); $(this).slideDown('fast'); }else{ // それ以外のメニューの場合 // サブメニューを閉じる $(this).prev("a").removeClass('expand'); $(this).slideUp('fast'); } }); $("#content").html(''); // パンくずを生成 var pankuzu = $('
'); var text = "" + leftMenu.text() + ""; var parents = leftMenu.parents('.submenu'); for(var i = 0 ; i < parents.length ; i ++){ text = '' + $(parents[i]).prev('a').text() + ' > ' + text; } if($('#manualTop .model').length > 0){ text = '' + $('#manualTop .model').html().replace(/
/gi, ' ').replace(/<("[^"]*"|'[^']*'|[^'">])*>/gi, '') + "
> " + text; } pankuzu.html(text); $(".pankuzu").remove(); $("#contentArea").before(pankuzu); // パンくずリンクにアクションを設定 $(".pankuzu a").click(function(){ return myPushState($(this).attr('href')); }); // コンテンツを表示領域にコピー $("#content").append($("#"+id).html()); //$("#contentArea").scrollTop(0); // フッターのページングリンク生成 var num = $("#bookmark a").length; for(var i = 0; i < num ; i++){ if($($("#bookmark a")[i]).hasClass('active')){ // prev var prev_num = i - 1; while(!$($("#bookmark a")[prev_num]).hasClass('sectionMenu')){ prev_num --; if(prev_num <= 0){ break; } } var prev = $($("#bookmark a")[prev_num])[0]; if(prev == undefined){ if($("#manualTop")[0] == undefined){ $('#btnPrev').attr('href', ''); $('#btnPrev').hide(); }else{ $('#btnPrev').attr('href', './index.html'); $('#btnPrev').show(); } }else{ $('#btnPrev').attr('href', $(prev).attr('href')); $('#btnPrev').show(); } // next var next_num = i + 1; while(!$($("#bookmark a")[next_num]).hasClass('sectionMenu')){ next_num ++; if(next_num > num){ break; } } var next = $($("#bookmark a")[next_num])[0]; if(next == undefined){ $('#btnNext').attr('href', ''); $('#btnNext').hide(); }else{ $('#btnNext').attr('href', $(next).attr('href')); $('#btnNext').show(); } break; } } // 画像をlightboxで囲う $("#content img.img-lightbox").each(function(){ $(this).wrap(''); }); autoFixHeightFunc2('#contentArea',['#header','.pankuzu','#footer']); var targetY = 0; if(refid != undefined){ var target = $("#content *[id='"+refid+"']")[0]; if(target != undefined){ targetY = target.offsetTop; } $(target).effect( 'highlight', '', 2000 ); } if(before_id == id){ var currentY = $("#contentArea")[0].scrollTop + $(".pankuzu")[0].offsetHeight; var maxY = $("#contentArea")[0].scrollHeight - $("#contentArea")[0].offsetHeight; if( ( currentY < targetY && currentY < maxY) || ( currentY >= targetY && targetY < maxY)){ $("#contentArea").animate({scrollTop: targetY}, 500, 'swing'); }else{ $("#contentArea").scrollTop(targetY); } }else{ $("#contentArea").scrollTop(targetY); } // コンテンツ内のリンクにアクションを設定 $("#content a").click(function(){ if($(this).attr("data-lightbox")){ // 画像拡大 return true; }else if($(this).attr("target") == "_blank"){ return true; }else if($(this).hasClass("footnoteRef")){ (event.preventDefault) ? event.preventDefault() : event.returnValue = false; var target = $(this).attr("href"); var tmp = $(""); $(target).append(tmp); $("#focusInput").focus().remove(); $(target).effect( 'highlight', '', 2000 ); return false; }else{ return myPushState($(this).attr('href')); } }); before_id = id; } $(window).on('resize', function(){ autoFixHeightFunc2('#contentArea',['#header','.pankuzu','#footer']); }); function autoFixHeightFunc2(selecter, exclusions){ var wh = window.innerHeight; var exh = 0; for(elm in exclusions){ if($(exclusions[elm]).is(":visible")){ exh += $(exclusions[elm]).outerHeight(true); } } var h = wh - exh; if(h < 0){ h = 0; } $(selecter).height(h); } // レフトメニューを閉じる $("#bookmark .submenu").hide(); // 子要素があるメニューにスタイルを当てる $("#bookmark ul.submenu").each(function(){ $(this).prev('a').addClass('parent'); }); // レフトメニュー選択時 $("#bookmark a").click(function(){ // 自身のサブメニューの開閉状態を取得 var subVisible = $(this).next(".submenu").is(':visible'); if(subVisible){ $(this).addClass('subClose'); }else{ $(this).removeClass('subClose'); } // 選択したメニューが末端メニューの場合 if(!$(this).hasClass('parent')){ // レフトメニューを閉じる $("#contentScreen").click(); } return myPushState($(this).attr('href')); }); // レフトメニュータブ選択時 $("#sidetabs > li > a").click(function(){ $($(this).attr('href')).focus(); }); // 前へ/次へナビゲーション選択時 $("#btnPrev, #btnNext").click(function(){ $(".pankuzu").remove(); $("#contentArea").removeAttr('style'); // レフトメニューを閉じる $("#contentScreen").click(); $("#contentArea").focus(); return myPushState($(this).attr('href')); }); // ページトップへボタンを表示/非表示する $("#contentArea").scroll(function(){ var pos = $(this).scrollTop(); if(pos <= 0){ $("#btnScrollTop").fadeOut("slow"); }else{ $("#btnScrollTop").fadeIn("slow"); } }); // ページトップへボタンを押したとき $("#btnScrollTop").click(function(){ $("#contentArea").animate({scrollTop:0},"fast"); }); function myPushState(url){ if (window.history && window.history.pushState){ try{ history.pushState(null, document.title, url); funcHistory(url); return false; }catch(e){ return true; } } } $(window).on("load popstate",function(event){ if (window.history && window.history.pushState){ var url = window.location.href; funcHistory(url); } }); function funcHistory(url){ var hashQuery = GetQueryStringFromHash(url); if(hashQuery.id != undefined && hashQuery.id.length > 0){ loadContent(hashQuery.id , hashQuery.hl, hashQuery.hm, hashQuery.refid, hashQuery.hi); } else{ loadManualTop(); } } function GetQueryStringFromHash(url){ var result = {}; var urls = url.split('#'); if(urls[1] == undefined){ return result; } var hash = urls[1]; var parameters = hash.split('?'); var command = parameters[0]; if(parameters[1] != undefined){ var q = parameters[1]; var parameters = q.split('&'); for( var i = 0; i < parameters.length; i++ ){ // パラメータ名とパラメータ値に分割する var element = parameters[i].split( '=' ); var paramName = decodeURIComponent(element[0] ); var paramValue = decodeURIComponent(element[1] ); // パラメータ名をキーとして連想配列に追加する result[ paramName ] = paramValue; } } if(command == 'search'){ }else{ result['id'] = command; } return result; } });