CINXE.COM
諸橋幸恵の作品一覧 | ソニーの電子書籍ストア -Reader Store
<!DOCTYPE html> <html lang="ja"> <head> <!-- Page hiding snippet (recommended) --> <style>.async-hide { opacity: 0 !important} </style> <script> (function(a,s,y,n,c,h,i,d,e){s.className+=' '+y; h.end=i=function(){s.className=s.className.replace(RegExp(' ?'+y),'')}; (a[n]=a[n]||[]).hide=h;setTimeout(function(){i();h.end=null},c); })(window,document.documentElement,'async-hide','dataLayer',4000,{'GTM-K23J49B':true}); </script> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-K23J49B');</script> <!-- End Google Tag Manager --> <!-- OneTrust Cookie --> <script type="text/javascript" src="https://cdn-apac.onetrust.com/consent/c5ad9229-be78-4811-b68f-1860e5290ecf/OtAutoBlock.js" ></script> <script src="https://cdn-apac.onetrust.com/scripttemplates/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="c5ad9229-be78-4811-b68f-1860e5290ecf" ></script> <script type="text/javascript"> function OptanonWrapper() { } </script> <!-- End OneTrust Cookie --> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width"> <title>諸橋幸恵の作品一覧 | ソニーの電子書籍ストア -Reader Store</title> <meta name="description" content="「諸橋幸恵」の電子書籍はソニー【Reader Store】。国内最大級の品揃え!無料本も多数!"> <meta name="keywords" content="諸橋幸恵,電子書籍,ソニーReader Store"> <meta property="og:title" content="諸橋幸恵の作品一覧 | ソニーの電子書籍ストア -Reader Store"> <meta property="og:type" content="website"> <meta property="og:image" content="https://ebookstore.sony.jp/cms-assets/materials/ogp.png"> <meta property="og:url" content="https://ebookstore.sony.jp/author/%E8%AB%B8%E6%A9%8B%E5%B9%B8%E6%81%B5/"> <meta property="og:site_name" content="電子書籍・電子コミックストア Reader Store / Sony"> <meta property="og:description" content="「諸橋幸恵」の電子書籍はソニー【Reader Store】。国内最大級の品揃え!無料本も多数!"> <meta name="twitter:card" content="summary"> <meta name="twitter:site" content="@ReaderStore_JP"> <meta name="twitter:description" content="Reader Store"> <meta name="twitter:image" content="https://ebookstore.sony.jp/cms-assets/materials/ogp.png"> <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" /> <link rel="icon" sizes="180x180" href="/cms-assets/materials/apple-touch-icon.png"> <link rel="apple-touch-icon" href="/cms-assets/materials/apple-touch-icon.png" /> <link rel="apple-touch-icon" sizes="57x57" href="/cms-assets/materials/apple-touch-icon-57x57.png" /> <link rel="apple-touch-icon" sizes="72x72" href="/cms-assets/materials/apple-touch-icon-72x72.png" /> <link rel="apple-touch-icon" sizes="76x76" href="/cms-assets/materials/apple-touch-icon-76x76.png" /> <link rel="apple-touch-icon" sizes="114x114" href="/cms-assets/materials/apple-touch-icon-114x114.png" /> <link rel="apple-touch-icon" sizes="120x120" href="/cms-assets/materials/apple-touch-icon-120x120.png" /> <link rel="apple-touch-icon" sizes="144x144" href="/cms-assets/materials/apple-touch-icon-144x144.png" /> <link rel="apple-touch-icon" sizes="152x152" href="/cms-assets/materials/apple-touch-icon-152x152.png" /> <link rel="apple-touch-icon" sizes="180x180" href="/cms-assets/materials/apple-touch-icon-180x180.png" /> <link rel="apple-touch-icon" sizes="192x192" href="/cms-assets/materials/apple-touch-icon-192x192.png" /> <link rel="apple-touch-icon" sizes="512x512" href="/cms-assets/materials/apple-touch-icon-512x512.png" /> <link rel="manifest" href="/cms-assets/materials/manifest.json"> <link rel="stylesheet" href="/cms-assets/stylesheets/common.css?1734080589"> <link rel="canonical" href="https://ebookstore.sony.jp/author/%E8%AB%B8%E6%A9%8B%E5%B9%B8%E6%81%B5/"> </head> <body> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-K23J49B" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <header role="navigation" class="header is-top" id="top"> <div class="header__inner" id="header"> <p class="header__logoWrapper"> <a href="/" class="header__logoLink"> <img src="/cms-assets/materials/lp_logo.png" alt="Reader Store" class="header__logo"> </a> </p> <div class="header__search"> <div class="header__searchInner" id="headerSearch" data-recommend-endpoint="https://recommend-api.ebookstore.sony.jp" data-suggest_endpoint="https://suggest.rs.s4p.jp"> <form class="header__searchInputWrapper" action="/search/"> <div class="header__inputTextWrapper"> <input type="text" value="" name="q" class="header__searchInput input blank typeahead" id="headerSearchInput" placeholder="どんな本をお探しですか?" data-query=""> <input type="hidden" name="cs" value="search"> <div class="header__searchSupport"> <div class="header__searchDetailButtonSpWrapper"> <a href="/search/?q=&cs=search&detailsearchmodal=direct&frmsearchmodal=1" class="header__searchDetailButtonSp" ><span class="header__searchDetailIcon"></span>詳細条件から検索する</a> </div> <div class="header__searchRecommend" id="headerSearchRecommend"></div> </div> <button class="header__searchButton"></button> <button class="header__searchCloseButton js-searchClose"></button> </div> <!-- 検索 --> <button class="header__searchDetailButton">詳細検索</button> </form> </div> <div id="searchTrigger" class="header__searchTrigger"> <span class="header__searchTriggerText">検索</span> </div> </div> <div class="header__menu" id="menuWrapper"> <nav class="header__menuWrapper" id="menuInner"> <div class="header__menuInner"> <ul class="header__memberMenuList"> <li class="header__memberMenuItem--login"> <a href="/login/start/?sendUrl=https%3A%2F%2Febookstore.sony.jp%2Fauthor%2F%25E8%25AB%25B8%25E6%25A9%258B%25E5%25B9%25B8%25E6%2581%25B5%2F" class="header__memberMenuLink js-login">無料ではじめる/サインイン</a> </li> </ul> <div class="header__menuInner2" id="userMenu"> <div class="header__spMenulistWrapper"> <div class="header__menuHeader"> <a href="/login/start/?sendUrl=https%3A%2F%2Febookstore.sony.jp%2Fauthor%2F%25E8%25AB%25B8%25E6%25A9%258B%25E5%25B9%25B8%25E6%2581%25B5%2F" class="header__menuHeaderLoginButton js-login">無料ではじめる/サインイン</a> <button id="menuClose" class="header__menuHeaderCloseButton"/> </div> <ul class="header__menuList--tile"> <li class="header__menuItem--cart"> <a href="/cart/incart/" class="header__menuLink">カート <p class="header__menuBadgeWrapper"> <span class="header__menuBadge js-syncCartCnt is-hidden"></span> </p> </a> <span class="header__noticeBalloon js-syncCartSales" style="display:none">SALE</span> </li> <li class="header__menuItem--keep"> <a href="/buylater/" class="header__menuLink">お気に入り <p class="header__menuBadgeWrapper"> <span class="header__menuBadge js-syncKeepCnt is-hidden"></span> </p> </a> <span class="header__noticeBalloon js-syncCartKeep" style="display:none">SALE</span> </li> <li class="header__menuItem--bookShelf"> <a href="/mybook/list/" class="header__menuLink">本棚</a> </li> <li class="header__menuItem--notification"> <a href="/mypage/notification/" class="header__menuLink">通知 <p class="header__menuBadgeWrapper"> <span class="header__menuBadge is-hidden"></span> </p> </a> </li> <li class="header__menuItem--continueList"> <a href="/mybook/list/?displayStatus=true&isContinuation=true&listButtonFlg=false" class="header__menuLink">続巻一覧 <p class="header__menuBadgeWrapper"> <span id="continuationTitleCountBadge" class="header__menuBadge is-hidden">0</span> </p> </a> </li> <li class="header__menuItem--history"> <a href="/viewlist/" class="header__menuLink">閲覧履歴</a> </li> </ul> </div> <h3 class="header__menuListHeading">一覧から探す</h3> <ul class="header__menuList"> <li class="header__menuItem"> <a href="/index/list/" class="header__menuLink">ジャンル</a> </li> <li class="header__menuItem"> <a href="/publisher/list/" class="header__menuLink">出版社</a> </li> <li class="header__menuItem"> <a href="/label/list/" class="header__menuLink">レーベル・掲載誌</a> </li> <li class="header__menuItem"> <a href="/stc/article/top/" class="header__menuLink">特集・キャンペーン情報</a> </li> <li class="header__menuItem"> <a href="/top/newlist/" class="header__menuLink">新着・配信予定</a> </li> <li class="header__menuItem"> <a href="/top/sale/?cs=saletab_top" class="header__menuLink">セール</a> </li> <li class="header__menuItem"> <a href="/top/ranking/?tab=hot" class="header__menuLink">ランキング</a> </li> </ul> <ul class="header__menuList"> <li class="header__menuItem"> <a href="/news/" class="header__menuLink">お知らせ一覧</a> </li> <li class="header__menuItem"> <a href="/stc/help/" class="header__menuLink">ヘルプ</a> </li> <li class="header__menuItem"> <a href="/stc/about/terms/" class="header__menuLink">利用規約</a> </li> </ul> </div> </div> </nav> <div id="menuBackground" class="header__menuBackground"></div> <div id="menuOpen" class="header__menuButtonWrapper"> <span class="header__menuButton"></span> </div> </div> <div class="header__tool"> <ul class="header__toolList" id="headerToolList"> <li class="header__toolItem header__toolItem--cart"> <a href="/cart/incart/" class="header__toolLink"> <span class="header__toolBadge js-syncCartCnt is-hidden"></span> <span class="header__toolLinkText">カート</span> </a> <span class="header__noticeBalloon js-syncCartSales" style="display:none">SALE</span> </li> <li class="header__toolItem header__toolItem--keep"> <a href="/buylater/" class="header__toolLink"> <span class="header__toolBadge js-syncKeepCnt is-hidden"></span> <span class="header__toolLinkText header__toolLinkText--is-large">お気に入り</span> </a> <span class="header__noticeBalloon js-syncCartKeep" style="display:none">SALE</span> </li> <li class="header__toolItem header__toolItem--bookShelf"> <a href="/mybook/list/" class="header__toolLink"> <span class="header__toolLinkText">本棚</span> </a> </li> </ul> </div> <div class="header__overlay js-searchClose"></div> </div> </header> <div class="topSubMenu__wrapper"> <div class="topSubMenu"> <div class="topSubMenu__inner"> <ul class="topSubMenu__floor js-pjaxWrapper" id="floorLink"> <li class="topSubMenu__floorItem topSubMenu__floorItem--is-top"> <a href="/" class="topSubMenu__floorLink is-current js-pjax" data-pjax-target="topContent"> <span class="topSubMenu__floorLinkText"> 総合 </span> </a> </li> <li class="topSubMenu__floorItem"> <a href="/comic/" class="topSubMenu__floorLink js-pjax" data-pjax-target="topContent"> <span class="topSubMenu__floorLinkText"> コミック </span> </a> </li> <li class="topSubMenu__floorItem"> <a href="/lightnovel/" class="topSubMenu__floorLink js-pjax" data-pjax-target="topContent"> <span class="topSubMenu__floorLinkText"> ラノベ </span> </a> </li> <li class="topSubMenu__floorItem"> <a href="/novel/" class="topSubMenu__floorLink js-pjax" data-pjax-target="topContent"> <span class="topSubMenu__floorLinkText"> 小説 </span> </a> </li> <li class="topSubMenu__floorItem"> <a href="/magazine/" class="topSubMenu__floorLink js-pjax" data-pjax-target="topContent"> <span class="topSubMenu__floorLinkText"> 雑誌・グラビア </span> </a> </li> <li class="topSubMenu__floorItem"> <a href="/business/" class="topSubMenu__floorLink js-pjax" data-pjax-target="topContent"> <span class="topSubMenu__floorLinkText"> ビジネス・実用 </span> </a> </li> <li class="topSubMenu__floorItem"> <a href="/boyslove/" class="topSubMenu__floorLink js-pjax" data-pjax-target="topContent"> <span class="topSubMenu__floorLinkText"> BL・TL </span> </a> </li> <li class="topSubMenu__floorItem"> <a href="/adult/" class="topSubMenu__floorLink js-pjax" data-pjax-target="topContent"> <span class="topSubMenu__floorLinkText"> アダルト </span> </a> </li> </ul> </div> </div> </div> <script type="text/javascript" charset="utf-8"><!-- (function(w,d,c){w.TLAB=[['Setup',c]];var t=d.createElement('script');t.type='text/javascript';t.charset='utf-8';t.src=(c.RecommendEndpoint||'')+'/js.recommend/tlab_v4.js';d.getElementsByTagName('head')[0].appendChild(t);}) (window,document,{ 'BeaconEndpoint': "https://recommend-b.ebookstore.sony.jp", 'RecommendEndpoint' : "https://recommend-api.ebookstore.sony.jp" }); // --></script> <script type="text/javascript"> var poplularTag = ''; poplularTag = '<aside class="recommendModule js-recommendWrap"><div class="choiceProductList__wrapper"><div id="rec_popular" class="recommendModule__body js-iframeAutoWidth" scrolling="no"></div></div></aside>'; var featureTag = ''; featureTag = '<aside class="recommendModule js-recommendWrap recommendModule--feature"><div class="featureList__wrapper"><div id="rec_feature" class="recommendModule__body js-iframeAutoWidth" scrolling="no"></div></div></aside>'; var recommendChecked = ''; recommendChecked = '<aside class="recommendModule js-recommendWrap"><div class="choiceProductList__wrapper"><div id="rec_checked" class="recommendModule__body js-iframeAutoWidth" scrolling="no"></div></div></aside>'; </script> <main class="main--detail"> <section class="bookVisualDetail"> <div class="bookVisualDetail__authorInner"> <div class="bookVisualDetail__mainBox"> <div class="bookVisualDetail__bg" style="background-image: url(/photo/BT00014848/BT000148480000100101_LARGE.jpg)"></div> <div class="bookVisualDetail__mainBoxContent"> <div class="bookVisualDetail__authorTitleBox"> <h1 class="bookVisualDetail__title--author">諸橋幸恵</h1> <div class="bookVisualDetail__toggleList"> <div class="bookVisualDetail__toggleTitleBox"> <p class="bookVisualDetail__toggleTitle">作者新刊通知</p> </div> <label class="bookVisualDetail__toggleBox"> <input type="checkbox" id="notification_author_LT000215072002834596" class="bookVisualDetail__toggle js-toggleButton js-authorNotification js-addNotification" name="" contentsId="LT000215072002834596" authorNm="諸橋幸恵" authorId="195485"> <p class="bookVisualDetail__toggleText js-toggleButtonText"><span class="is-on">ON</span><span class="is-off">OFF</span></p> </label> </div> </div> </div> </div> </div> </section> <section class="detailItem"> <div class="detailItem__autherInner"> <div class="detailItem__itemNumHeader"> <div class="detailItem__itemNumHeaderAuthor"> <div class="detailItem__itemNumHeaderBox"> <h2 class="detailItem__itemNumHeaderNum">作品(2)</h2> </div> </div> </div> <div class="detailItem__listBox"> <ul class="detailItem__list"> <li class="detailItem__listItem"> <div class="detailItem__listItemInner"> <div class="detailItem__infoBox"> <p class="detailItem__title"> <a href="/series/11091621/" class="detailItem__link">必ずうまくなる!!バスケットボール 基本と練習法</a> </p> <p class="detailItem__text--name"> <a href="/author/%E9%88%B4%E6%9C%A8%E8%89%AF%E5%92%8C/">鈴木良和</a>, <a href="/author/%E8%AB%B8%E6%A9%8B%E5%B9%B8%E6%81%B5/">諸橋幸恵</a> </p> <p class="detailItem__text"> 既刊1巻(最新巻:2024/12/13) </p> <div class="detailItem__authorToggleList"> <div class="detailItem__toggleTitleBox"> <p class="detailItem__toggleTitle">新刊通知</p> </div> <label class="detailItem__authorToggleBox"> <input type="checkbox" id="notification_series_LT000215072002834596" class="detailItem__toggle js-toggleButton js-seriesNotification js-addNotification" name="" contentsId="LT000215072002834596" titleId="11091621"> <p class="detailItem__toggleText js-toggleButtonText"><span class="is-on">ON</span><span class="is-off">OFF</span></p> </label> </div> </div> <div class="detailItem__imageBox"> <a href="/series/11091621/" class="detailItem__link"> <p class="detailItem__imageWrapper"> <img src="/photo/LT00021507/LT000215072002834596_LARGE.jpg" class="detailItem__image" alt="必ずうまくなる!!バスケットボール 基本と練習法"> <span class="topItemDetailList__itemBadge is-goldBadge"> 本日入荷 </span> </p> </a> </div> </div> </li> <li class="detailItem__listItem"> <div class="detailItem__listItemInner"> <div class="detailItem__infoBox"> <p class="detailItem__title"> <a href="/series/01484800/" class="detailItem__link">必ずうまくなるバスケットボール 基本と練習法</a> </p> <p class="detailItem__text--name"> <a href="/author/%E9%88%B4%E6%9C%A8%E8%89%AF%E5%92%8C/">鈴木良和</a>, <a href="/author/%E8%AB%B8%E6%A9%8B%E5%B9%B8%E6%81%B5/">諸橋幸恵</a> </p> <p class="detailItem__text"> 既刊1巻(最新巻:2023/12/15) </p> <div class="detailItem__authorToggleList"> <div class="detailItem__toggleTitleBox"> <p class="detailItem__toggleTitle">新刊通知</p> </div> <label class="detailItem__authorToggleBox"> <input type="checkbox" id="notification_series_BT000148480000100101" class="detailItem__toggle js-toggleButton js-seriesNotification js-addNotification" name="" contentsId="BT000148480000100101" titleId="01484800"> <p class="detailItem__toggleText js-toggleButtonText"><span class="is-on">ON</span><span class="is-off">OFF</span></p> </label> </div> </div> <div class="detailItem__imageBox"> <a href="/series/01484800/" class="detailItem__link"> <p class="detailItem__imageWrapper"> <img src="/photo/BT00014848/BT000148480000100101_LARGE.jpg" class="detailItem__image" alt="必ずうまくなるバスケットボール 基本と練習法"> </p> </a> </div> </div> </li> </ul> </div> </div> </section> <script type="text/javascript"> document.write(poplularTag + featureTag + recommendChecked); </script> </main> <footer class="footer"> <div class="footer__bottomArea"> <div class="footer__bottomAreaBox"> <div class="footer__bottomAreaInner"> <ul class="footer__areaContentsList"> <li class="footer__areaContentsListItem"> <p class="footer__areaTitle" id="footerFloorListLabel">フロア</p> <ul class="footer__areaList" id="footerFloorList"> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/">総合</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/comic/">コミック</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/lightnovel/">ラノベ</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/novel/">小説</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/magazine/"> 雑誌・グラビア </a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/business/">ビジネス・実用</a> </li> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/boyslove/">BL・TL</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/adult/">アダルト</a> </li> </ul> </li> <li class="footer__areaContentsListItem footer__areaContentsListItem--is-sale"> <p class="footer__areaTitle" id="footerSaleListLabel">セール</p> <ul class="footer__areaList" id="footerSaleList"> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/top/sale/?cs=saletab_top">総合</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/comic/sale/?cs=saletab_comic">コミック</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/lightnovel/sale/?cs=saletab_lightnovel">ラノベ</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/novel/sale/?cs=saletab_novel">小説</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/magazine/sale/?cs=saletab_magazine"> 雑誌・グラビア </a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/business/sale/?cs=saletab_business">ビジネス・実用</a> </li> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/boyslove/sale/?cs=saletab_boyslove">BL・TL</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/adult/sale/?cs=saletab_adult">アダルト</a> </li> </ul> </li> <li class="footer__areaContentsListItem footer__areaContentsListItem--is-new"> <p class="footer__areaTitle" id="footerNewListLabel">新着</p> <ul class="footer__areaList" id="footerNewList"> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/top/newlist/">総合</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/comic/newlist/">コミック</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/lightnovel/newlist/">ラノベ</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/novel/newlist/">小説</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/magazine/newlist/"> 雑誌・グラビア </a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/business/newlist/">ビジネス・実用</a> </li> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/boyslove/newlist/">BL・TL</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/adult/newlist/">アダルト</a> </li> </ul> </li> <li class="footer__areaContentsListItem footer__areaContentsListItem--is-rank"> <p class="footer__areaTitle" id="footerRankListLabel">ランキング</p> <ul class="footer__areaList" id="footerRankList"> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/top/ranking/?tab=hot&cs=hottab_pay_top">総合</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/comic/ranking/?tab=hot&cs=hottab_pay_comic">コミック</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/lightnovel/ranking/?tab=hot&cs=hottab_pay_lightnovel">ラノベ</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/novel/ranking/?tab=hot&cs=hottab_pay_novel">小説</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/magazine/ranking/?tab=hot&cs=hottab_pay_magazine"> 雑誌・グラビア </a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/business/ranking/?tab=hot&cs=hottab_pay_business">ビジネス・実用</a> </li> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/boyslove/ranking/?tab=hot&cs=hottab_pay_boyslove">BL・TL</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/adult/ranking/?tab=hot&cs=hottab_pay_adult">アダルト</a> </li> </ul> </li> <li class="footer__areaContentsListItem footer__areaContentsListItem--is-genre"> <p class="footer__areaTitle" id="footerGenreListLabel">ジャンル</p> <ul class="footer__areaList" id="footerGenreList"> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/A00002/">コミック</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/B00042/">男性コミック</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/B00043/">女性コミック</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/B90002/">コミック誌</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/A00004/">ライトノベル</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/B00068/">男子向けラノベ</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/B00069/">女子向けラノベ</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/A00005/">小説</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/B00053/">国内小説</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/B00054/">海外小説</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/B00056/">ミステリー</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/B00055/">SF</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/B00058/">歴史・時代小説</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/A00006/">文学</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/A00001/">雑誌</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/A00021/">グラビア写真集</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/A00009/">ボーイズラブ</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/A00008/">ティーンズラブ</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/A00003/">アダルト</a> </li> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/A00017/">人文・思想・歴史</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/A00018/">社会・政治・法律</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/A00013/">ビジネス・経済</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/A00019/">サイエンス・テクノロジー</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/A00014/">コンピュータ・情報</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/A90098/">くらし・家庭</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/A90096/">料理・酒</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/A90097/">ファッション・美容・ダイエット</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/A90092/">ホビー&カルチャー</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/A90088/">スポーツ・アウトドア</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/A00012/">地図・ガイド</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/A90085/">エンターテイメント</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/A90002/">芸術・アート</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/A90086/">映画・音楽・演劇</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/A90093/">写真集</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/A90095/">教養</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/A00020/">医学・福祉</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/A00016/">教育・語学・参考書</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/genre/A00015/">児童書</a> </li> </ul> </li> <li class="footer__areaContentsListItem"> <p class="footer__areaTitle" id="footerHelpListLabel">ヘルプ&サポート</p> <ul class="footer__areaList" id="footerHelpList"> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/introduction/">初めての方へ</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/stc/help/">ヘルプ</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/stc/help/faq/">よくあるご質問</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/stc/help/support/">お問い合わせ</a> </li> <li class="footer__areaListItem"> <a class="footer__areaListLink" href="/stc/about/terms/">利用規約</a> </li> <li class="footer__areaListItem footer__areaListItem--is-empty"> </li> </ul> </li> </ul> </div> <div class="footer__copyrightBox"> <div class="footer__copyrightBoxInner"> <ul class="footer__appButtonList"> <li class="footer__appButtonListItem"> <a href="/stc/sendto/app.html?utm_source=ebookstore.sony.jp&utm_campaign=induction_app_android&utm_medium=website" target="_blank" class="footer__appButton"><img src="/cms-assets/materials/logo_app_01.png" alt="googleplay" class="footer__appImage"></a> </li> <li class="footer__appButtonListItem"> <a href="/stc/sendto/iOS.html?utm_source=ebookstore.sony.jp&utm_campaign=induction_app_ios&utm_medium=website" target="_blank" class="footer__appButton"><img src="/cms-assets/materials/logo_app_02.png" alt="appStore" class="footer__appImage"></a> </li> </ul> <ul class="footer__navFooterList"> <li class="footer__navFooterItem"> <a class="footer__navFooterLink footer__navFooterLink--window" target="_blank" href="https://www.sme.co.jp/s/SME/page/company_profile">会社情報</a> </li> <li class="footer__navFooterItem"> <a class="footer__navFooterLink footer__navFooterLink--window" target="_blank" href="https://www.sme.co.jp/s/SME/page/privacy">プライバシーポリシー</a> </li> <li class="footer__navFooterItem"> <a class="footer__navFooterLink footer__navFooterLink--window" target="_blank" href="https://www.sme.co.jp/s/SME/page/terms">ご利用条件</a> </li> <li class="footer__navFooterItem"> <!-- OneTrust Cookie --> <a class="ot-sdk-show-settings footer__navFooterLink footer__navFooterLink--window" href="#ot-sdk-btn">クッキーの詳細</a> <!-- End OneTrust Cookie --> </li> </ul> <p class="footer__logo"> <a href="http://www.sonymusic.co.jp/" class="footer__logoLink" target="_blank"> <img src="/cms-assets/materials/logo_02.png" alt="SonyMusic" class="footer__logoImage"> </a> </p> <p class="footer__copyright"> <small class="footer__copyrightSmall"> Copyright 2017 - 2024 Sony Music Entertainment(Japan) Inc. Information on the site is for the Japan domestic market only </small> </p> <p class="footer__logo02"> <span class="footer__logo02Text">powered by</span> <img class="footer__logo02Img" src="/cms-assets/materials/logo_03.png" alt="booklista"> </p> <p class="footer__abj"> <a href="/news/uqybv4vjp/" class="footer__abjLink"> <img src="/cms-assets/materials/abj_01.png" alt="" class="footer__abjImage"> </a> </p> </div> </div> </div> </div> </footer> <script src="/cms-assets/javascripts/common_pc_lib.js?1734080589"></script> <script src="/cms-assets/javascripts/common_pc.js?1734080589"></script> <script src="/cms-assets/javascripts/common_lib.js?1734080589"></script> <script src="/cms-assets/javascripts/common.js?1734080589"></script> <!-- 変数定義 --> <script type="text/javascript"> var safeSearchFlg = ""; var safeAdultGenreFlg = ""; var safeGenreIdOrStr = ""; var loginFlg = ""; var storeId = "prod"; var debugViewFlg = ""; var recommendApiUrl = "https://recommend-api.ebookstore.sony.jp"; var $clickButton = null; </script> <script type="text/javascript"> dataLayer.push({ "user.tracking_id" : "1734082194550.4877305643", "user.user_id" : "", "user.device_id" : "PC" }); $('#headerSearchInput').on('focus', function(){ dataLayer.push({ "event" : "dmp.suggest.focus", "access_time" : 1734082194 }); }); $('#headerSearch').on('click', '.js-link', function() { var valueList = []; var rank = 0; var selectedValue = $(this).find('.js-value:first').text(); var selectedCategory = $(this).find('.js-category:first').text(); $('#headerSearch').find('.js-value').each(function(index){ var value = $(this).text(); if (value == selectedValue) { rank = index; } valueList.push(value); }); dataLayer.push({ "event" : "dmp.suggest.click", "access_time" : 1734082194, "suggest.input" : $('#headerSearchInput').attr('data-query'), "suggest.result" : JSON.stringify(valueList), "suggest.select_value" : selectedValue, "suggest.select_rank" : rank, "suggest.select_category" : selectedCategory }); }); /** * 画面読み込み後にdataLayerにインプレッション数情報を追加 */ $(function(){ $('.js-dataLayerPushForDmp').one('inview', function() { var _this = this; var _paramList = createParamForDmp(_this); pushDataLayerForDmp(_paramList.dataType, _paramList.idList); }); }); // pjax遷移の場合もdataLayerに追加 $(document).bind('pjax:render', function() { $('.js-dataLayerPushForDmp').one('inview', function() { var _this = this; var _paramList = createParamForDmp(_this); pushDataLayerForDmp(_paramList.dataType, _paramList.idList); }); }); // facebookログインで余計なものが付いてくるので消す $(window).on('load', function(e){ if (window.location.hash == '#_=_') { window.location.hash = ''; // for older browsers, leaves a # behind history.pushState('', document.title, window.location.pathname); // nice and clean e.preventDefault(); // no page reload } }) /** * DMP用のdataLayerへの変数追加関数(pushDataLayerForDmp)に渡すパラメータを作成 * @param {String} 要素 * @return {Array} [データタイプ、idリスト] */ function createParamForDmp(element){ var _idList = []; var _dataType; /* 要素の判定フラグ */ // メインバナー var _mainBannerFlg = $(element).has(".mainBanner__link").length; // 定常バナー var _staticBannerFlg = $(element).has(".featureCarouselList__itemLink").length; // メインバナーもしくは定常バナーの場合 if(_mainBannerFlg > 0 || _staticBannerFlg > 0){ _selecter = (_mainBannerFlg > 0) ? ".mainBanner__link" : ".featureCarouselList__itemLink"; $(_selecter).each(function() { if(_idList.indexOf($(this).attr('id')) == -1){ _idList.push($(this).attr('id')); } }); _dataType = "banners"; // 企画棚の場合 } else { _idList.push($(element).attr('id')); _dataType = "lists"; } return {dataType: _dataType, idList: _idList}; } /** * DMP用変数をdataLayerへ追加する処理 * @param {String} 要素の種類 * @param {Array} idリスト */ function pushDataLayerForDmp(target, idList){ if(target && idList){ // キーが変数化出来ない為、やむ終えず分岐させた if(target == 'banners'){ dataLayer.push({ "event" : 'dmp.banner.view', "tlab.banners" : idList }); } else if(target == 'lists'){ dataLayer.push({ "event" : 'dmp.list.view', "tlab.lists" : idList }); } } } //セレクトボックス制御処理 //デバイス判定 var mobileType; $(function () { var ua = navigator.userAgent; if (ua.indexOf('iPhone') > 0 || ua.indexOf('Android') > 0 && ua.indexOf('Mobile') > 0) { // スマートフォン用コード mobileType = 1; } else if (ua.indexOf('iPad') > 0 || ua.indexOf('Android') > 0) { // タブレット用コード mobileType = 2; } else if (ua.indexOf('PlayStation Vita') > 0) { // vitaコード mobileType = 3; } else { // PC用コード mobileType = 0; } }); //プラグイン発火 $(function() { //pjax遷移後に処理発火させる $(document).on('pjax:ready', function() { if (mobileType >= 1) { $('select').niceSelect(); } }).trigger('pjax:ready'); }); function callAjaxCart($btn, url, data, callback, extention){ data['tokenKey'] = '40guEo2VjUceEg4'; $.ajax({ url : url, type: "POST", data: data, dataType: "json", context: $btn, success: function(json){ if (json.status == "NOAUTH"){ $.cookie("after_login_click",$(this).attr("id"),{path:"/", expires:1, secure:true}); var url = window.location.href; location.href="/login/start?sendUrl=" + encodeURIComponent(url); return; }else if(json.status == "TOKENERR"){ showErrorAlert("画面の再読み込みを行ってから、再度実行してください"); }else if(json.status == "OK"){ if(json.errors.length > 0){ for(var errorVal in json.errors){ if ($.inArray(json.errors[errorVal].errorCode, ["2006"]) >= 0) { callback($btn, json.errors[errorVal].errorCode, json); }else{ callback($btn, null, json); break; } } }else{ if(extention){ callback($btn, "OK", extention); }else{ callback($btn, null, json); } } }else if(json.status == "WARN"){ if(!json.count && json.errors.length > 1){ callback($btn, "WARN", json); }else if(!json.count && json.errors.length == 1){ for(var errorVal in json.errors){ if(json.errors[errorVal].errorStatus == "WARN"){ if ($.inArray(json.errors[errorVal].errorCode, ["2001","2005","2006","2008","2009","2109","2124","2125","2126","6005"]) >= 0) { callback($btn, json.errors[errorVal].errorCode, json); }else{ if(extention){ callback($btn, "WARN", extention); }else{ callback($btn, "WARN", json); } } } } }else{ callback($btn); } }else if(json.status == "INFO"){ if($.inArray(json.errors[0].errorCode, ["2005","2007","2009"]) >= 0) { callback($btn, json.errors[0].errorCode); } }else{ callback($btn, "ERROR", json); } }, error : function(XMLHttpRequest, textStatus, errorThrown) { } }); } //すべてのpjax遷移で発火 $(document).on('pjax:ready', function(){ dataLayer.push({ "event" : "dmp.pageview", "pageview.url" : window.location.href, "access_time" : 1734082194 }); }); window.onload = function () { window.addEventListener("message", receiveMessage, false); } function receiveMessage(event) { var dataStr = event.data; if (event.origin != recommendApiUrl || !dataStr.match(/clickButton/)) { return false; } // テスト用ログ出力処理(あとで消す) if(storeId != 'prod'){ console.log('カートボタン押下時のpostMessage送信データ'); console.log(event.data); } // テスト用ログ出力処理(あとで消す) // postMessageで送信された文字列をJSONに変換 var json = JSON.parse(event.data); // イベントについてグループ・タイプをチェック if(json.eventGroup == 'clickButton'){ var $dammyBtn = $("<a></a>"); if(json.eventType == 'addCart'){ // テスト用ログ出力処理(あとで消す) if(storeId != 'prod'){ console.log('カートボタン押下時のpostMessage送信データ'); console.log(json); } // テスト用ログ出力処理(あとで消す) $dammyBtn.attr('id', 'recommend_cart_' + json.item.aid); $dammyBtn.attr('contentsId', json.item.aid); $dammyBtn.attr('contentsIdPrice', json.item.price); $dammyBtn.attr('csParam', json.parameters.cs); addCart($dammyBtn); } else if (json.eventType == 'addKeep') { // テスト用ログ出力処理(あとで消す) if(storeId != 'prod'){ console.log('お気に入りに登録ボタン押下時のpostMessage送信データ'); console.log(json); } // テスト用ログ出力処理(あとで消す) $dammyBtn.attr('id', 'recommend_keep_' + json.item.aid); $dammyBtn.attr('contentsId', json.item.aid); $dammyBtn.attr('contentsIdPrice', json.item.price); $dammyBtn.attr('csParam', json.parameters.cs); addKeep($dammyBtn); } else if (json.eventType == 'addBook') { // テスト用ログ出力処理(あとで消す) if(storeId != 'prod'){ console.log('本棚に追加ボタン押下時のpostMessage送信データ'); console.log(json); } // テスト用ログ出力処理(あとで消す) $dammyBtn.attr('id', 'recommend_bookshelf_' + json.item.aid); $dammyBtn.attr('contentsId', json.item.aid); $dammyBtn.attr('contentstitle', json.item.title); addBook($dammyBtn); } } } function addCart ($btn) { var alertMessage = "カートに追加しました。"; var errorMessages = { "2001" : "すでに購入済みです。", "2005" : "すでにカートに追加されています。", "2006" : "カートに入れる数が上限いっぱいです。上限は500件です。", "2008" : "すでにカート内のセットに含まれています。", "WARN" : "カートに追加できませんでした。", "ERROR" : "カートに追加できませんでした。" }; var url = "/rsf-svc/cart/addtocart/"; var targetAid = $btn.attr('contentsId'); var data = { aid : targetAid, }; if($btn.hasClass('doubleSubmit')){ return; }else{ $btn.addClass('doubleSubmit'); } if($btn.hasClass('is-detail-cart')) { $('.is-detail-cart, .is-detail-keep').addClass('is-buttonDisabled'); } else if ($btn.hasClass('is-detail-cart-all')) { $btn.addClass('is-buttonDisabled'); } else if ($btn.hasClass('is-detail-cart-set')) { $btn.addClass('is-buttonDisabled'); } else if ($btn.hasClass('is-series-cart')) { $btn.addClass('is-active'); setTimeout($.proxy(function(){ $(this).removeClass('is-active'); $('#cart_'+targetAid).addClass('is-buttonDisabled'); $('#cart_pc_tile_'+targetAid).addClass('is-buttonDisabled'); $('#keep_'+targetAid).addClass('is-buttonDisabled'); $('#keep_pc_tile_'+targetAid).addClass('is-buttonDisabled'); }, $btn),1200); } else if ($btn.hasClass('is-series-cart-all')) { $('.is-series-cart-all, .is-series-cart, .is-series-keep').addClass('is-buttonDisabled'); } callAjaxCart($btn, url, data, function(buttn, errorCode, response){ $btn.removeClass('doubleSubmit'); if ($.inArray(errorCode, ["2001","2005","2006","2008","WARN","ERROR"]) >= 0) { showErrorAlert(errorMessages[errorCode]); } else { if($btn.hasClass('is-detail-cart')){ $btn.html('<span class="detailTopItem__iconCart">カートに入っています</span>'); $('.is-detail-keep').html('<span class="detailTopItem__iconFavorite">お気に入りに入れる</span>'); } if($btn.hasClass('is-series-cart-pc')){ $btn.html('<span class="detailTopItem__iconCart">カートに入っています</span>'); $('#keep_'+targetAid).html('<span class="detailTopItem__iconFavorite">お気に入りに入れる</span>'); } if($btn.hasClass('is-series-cart-pc-tile')){ $('#cart_'+targetAid).html('<span class="detailTopItem__iconCart">カートに入っています</span>'); $('#keep_'+targetAid).html('<span class="detailTopItem__iconFavorite">お気に入りに入れる</span>'); } if($btn.hasClass('is-series-cart-all-pc')){ $('.is-series-cart-pc').html('<span class="detailTopItem__iconCart">カートに入っています</span>'); $('.is-series-keep-pc').html('<span class="detailTopItem__iconFavorite">お気に入りに入れる</span>'); } var delKeepCnt = 0; var overFlg = 0; for (var i=0; i<response.errors.length; i++) { if (response.errors[i].errorCode == "2109") { delKeepCnt++; }else if(response.errors[i].errorCode == "2006"){ overFlg = 1; } } if (delKeepCnt > 0) { var keepCnt = parseInt($('.js-syncKeepCnt:first').text()); keepCnt -= delKeepCnt; if (keepCnt > 0) { $('.js-syncKeepCnt').text(keepCnt); } else { $('.js-syncKeepCnt').text(keepCnt).addClass('is-hidden'); } } if (overFlg) { showErrorAlert(errorMessages[errorCode]); }else{ showCommonAlert(alertMessage); } if (/\,/.test(targetAid)) { //現在のURLから特定のパラメータの値を取得する function getUrlParameter(paramName, defaultValue) { var searchParam = location.search.match(new RegExp('(?:\\?|&)' + paramName + '(?:=([^&]*))?')); var paramRes = (searchParam && 1 < searchParam.length) ? decodeURIComponent(searchParam[1]) : defaultValue; return paramRes; }; var data = {"event":"dmp.bundle.click","user.tracking_id":"1734082194550.4877305643","user.user_id":"","access_time":"1734082194","products":[]}; var cartCsParam = null; if($btn.attr('csParam') != undefined){ cartCsParam = $btn.attr('csParam'); } //csパラメータ(cartCsParam)が指定されている場合、dataLayerに指定されたcsパラメータを設定 //URLにcsパラメータが存在すれば、その値をparameter.csとしてdataLayerに送る //存在しなければcookieから取得した値をCSパラメータとしてdataの要素に追加する if(cartCsParam != null){ data['parameter.cs'] = encodeURIComponent(cartCsParam); }else if(getUrlParameter('cs')){ data['parameter.cs'] = getUrlParameter('cs', null); }else{ //例外的にトップ画面のpickupブロックでカート追加した場合は、クッキーの値ではなく'pickup_フロア名'を使用する if ($btn.hasClass("pickupProductList__itemAddCart")){ //ドメイン以降のパスからフロア名を取得する。存在しなければ'pickup_top'と定義する data['parameter.cs'] = 'pickup_' + (window.location.pathname.replace(/\u002f/g,"") || 'top'); }else{ data['parameter.cs'] = $.cookie('cs'); } } if ($btn.attr('contentsId') && $btn.attr('contentsIdPrice')) { var products_price = $btn.attr('contentsIdPrice').split(','); $btn.attr('contentsId').split(',').forEach(function(product,index){ product && data.products.push({ "iid": product, "price": products_price[index] }); }); } else if (data.event == 'dmp.add_bookshelf.click' && $btn.attr('contentsId')) { // 本棚追加ボタンクリック時のproduct価格情報設定 $btn.attr('contentsId').split(',').forEach(function(product,index){ product && data.products.push({ "iid": product, "price": '0' }); }); } dataLayer.push(data); } else { //現在のURLから特定のパラメータの値を取得する function getUrlParameter(paramName, defaultValue) { var searchParam = location.search.match(new RegExp('(?:\\?|&)' + paramName + '(?:=([^&]*))?')); var paramRes = (searchParam && 1 < searchParam.length) ? decodeURIComponent(searchParam[1]) : defaultValue; return paramRes; }; var data = {"event":"dmp.incart.click","user.tracking_id":"1734082194550.4877305643","user.user_id":"","access_time":"1734082194","products":[]}; var cartCsParam = null; if($btn.attr('csParam') != undefined){ cartCsParam = $btn.attr('csParam'); } //csパラメータ(cartCsParam)が指定されている場合、dataLayerに指定されたcsパラメータを設定 //URLにcsパラメータが存在すれば、その値をparameter.csとしてdataLayerに送る //存在しなければcookieから取得した値をCSパラメータとしてdataの要素に追加する if(cartCsParam != null){ data['parameter.cs'] = encodeURIComponent(cartCsParam); }else if(getUrlParameter('cs')){ data['parameter.cs'] = getUrlParameter('cs', null); }else{ //例外的にトップ画面のpickupブロックでカート追加した場合は、クッキーの値ではなく'pickup_フロア名'を使用する if ($btn.hasClass("pickupProductList__itemAddCart")){ //ドメイン以降のパスからフロア名を取得する。存在しなければ'pickup_top'と定義する data['parameter.cs'] = 'pickup_' + (window.location.pathname.replace(/\u002f/g,"") || 'top'); }else{ data['parameter.cs'] = $.cookie('cs'); } } if ($btn.attr('contentsId') && $btn.attr('contentsIdPrice')) { var products_price = $btn.attr('contentsIdPrice').split(','); $btn.attr('contentsId').split(',').forEach(function(product,index){ product && data.products.push({ "iid": product, "price": products_price[index] }); }); } else if (data.event == 'dmp.add_bookshelf.click' && $btn.attr('contentsId')) { // 本棚追加ボタンクリック時のproduct価格情報設定 $btn.attr('contentsId').split(',').forEach(function(product,index){ product && data.products.push({ "iid": product, "price": '0' }); }); } dataLayer.push(data); } $cartCnt = parseInt($('.js-syncCartCnt:first').text()); $addCnt = response.count ? response.count : 1; $('.js-syncCartCnt').text($cartCnt + $addCnt).removeClass('is-hidden'); //add_keep_beaconとadd_cart_beaconにて、変数を変更したものを、ここで出し分けしセール情報表示。 if(response.saleCart){ $('.js-syncCartSales').show(); } else{ $('.js-syncCartSales').hide(); } if(response.saleKeep){ $('.js-syncCartKeep').show(); } else{ $('.js-syncCartKeep').hide(); } } }); } function addKeep ($btn) { var alertMessage = "お気に入りに追加しました。"; var inKeepMessage = "すでにお気に入りに追加されています。"; var inCartMessage = "すでにカートに追加されています。"; var overCartMessage = "あとで入れる数が上限いっぱいです。上限は999件です。"; var errorMessage = "お気に入りに追加できませんでした。"; var purchasedMessage = "すでに購入済みです。"; var reservedMessage = "すでに予約済みです。"; var url = "/rsf-svc/keeplist/loginin/"; $aid = $btn.attr('contentsId'); var data = { aid : $aid, }; if($btn.hasClass('doubleSubmit')){ return; }else{ $btn.addClass('doubleSubmit'); } if($btn.hasClass('is-detail-keep')){ $btn.addClass('is-buttonDisabled'); } if($btn.hasClass('is-series-keep')){ $btn.addClass('is-buttonDisabled'); } callAjaxCart($btn, url, data, function ($btnCallBack, errorCode, response) { $btn.removeClass('doubleSubmit'); if(errorCode == "2109"){ showErrorAlert(inKeepMessage); }else if(errorCode == "2005"){ showErrorAlert(inCartMessage); }else if(errorCode == "2006"){ showErrorAlert(overCartMessage); }else if(errorCode == "2001"){ showErrorAlert(purchasedMessage); }else if(errorCode == "6005"){ showErrorAlert(reservedMessage); }else if((errorCode == "WARN") || (errorCode == "ERROR")){ showErrorAlert(errorMessage); }else{ showCommonAlert(alertMessage); if($btn.hasClass('is-detail-keep')) $btn.html('<span class="detailTopItem__iconFavorite">お気に入り済み</span>'); if($btn.hasClass('is-series-keep-pc')) { targetAid = $btn.attr('contentsId'); $('#keep_pc_tile_'+targetAid).addClass('is-buttonDisabled'); $btn.html('<span class="detailTopItem__iconFavorite">お気に入り済み</span>'); } if($btn.hasClass('is-series-keep-pc-tile')) { targetAid = $btn.attr('contentsId'); $('#keep_'+targetAid).addClass('is-buttonDisabled'); $('#keep_'+targetAid).html('<span class="detailTopItem__iconFavorite">お気に入り済み</span>'); } keepCnt = parseInt($('.js-syncKeepCnt:first').text()); $('.js-syncKeepCnt').text(keepCnt + 1).removeClass('is-hidden'); //add_keep_beaconとadd_cart_beaconにて、変数を変更したものを、ここで出し分けしセール情報表示。 if( response.saleCart == true){ $('.js-syncCartSales').show(); } else { $('.js-syncCartSales').hide(); } if( response.saleKeep == true){ $('.js-syncCartKeep').show(); } else{ $('.js-syncCartKeep').hide(); } //現在のURLから特定のパラメータの値を取得する function getUrlParameter(paramName, defaultValue) { var searchParam = location.search.match(new RegExp('(?:\\?|&)' + paramName + '(?:=([^&]*))?')); var paramRes = (searchParam && 1 < searchParam.length) ? decodeURIComponent(searchParam[1]) : defaultValue; return paramRes; }; var data = {"event":"dmp.buylater.click","user.tracking_id":"1734082194550.4877305643","user.user_id":"","access_time":"1734082194","products":[]}; var cartCsParam = null; if($btn.attr('csParam') != undefined){ cartCsParam = $btn.attr('csParam'); } //csパラメータ(cartCsParam)が指定されている場合、dataLayerに指定されたcsパラメータを設定 //URLにcsパラメータが存在すれば、その値をparameter.csとしてdataLayerに送る //存在しなければcookieから取得した値をCSパラメータとしてdataの要素に追加する if(cartCsParam != null){ data['parameter.cs'] = encodeURIComponent(cartCsParam); }else if(getUrlParameter('cs')){ data['parameter.cs'] = getUrlParameter('cs', null); }else{ //例外的にトップ画面のpickupブロックでカート追加した場合は、クッキーの値ではなく'pickup_フロア名'を使用する if ($btn.hasClass("pickupProductList__itemAddCart")){ //ドメイン以降のパスからフロア名を取得する。存在しなければ'pickup_top'と定義する data['parameter.cs'] = 'pickup_' + (window.location.pathname.replace(/\u002f/g,"") || 'top'); }else{ data['parameter.cs'] = $.cookie('cs'); } } if ($btn.attr('contentsId') && $btn.attr('contentsIdPrice')) { var products_price = $btn.attr('contentsIdPrice').split(','); $btn.attr('contentsId').split(',').forEach(function(product,index){ product && data.products.push({ "iid": product, "price": products_price[index] }); }); } else if (data.event == 'dmp.add_bookshelf.click' && $btn.attr('contentsId')) { // 本棚追加ボタンクリック時のproduct価格情報設定 $btn.attr('contentsId').split(',').forEach(function(product,index){ product && data.products.push({ "iid": product, "price": '0' }); }); } dataLayer.push(data); if($btn.hasClass('is-notification')){ $notificationUrl = "/rsf-svc/new/notification/"; $kbn = 3; $notificationData = { aid : $aid, kbn : $kbn, flg : 0, tid : "", authorNm : "", atid : "", }; $notificationBtn = $("a[contentsid='"+$aid+"'].js-addNotification") if($notificationBtn.length > 0){ callAjaxCart($notificationBtn,$notificationUrl,$notificationData,function(bttn,resCode,extention){ if(resCode == "OK" && $notificationBtn.hasClass("js-addNotification")){ $currentClass = "js-addNotification"; $nextClass = "js-removeNotification"; if($notificationBtn.hasClass("js-seriesTag") ){ if($notificationBtn.hasClass("detailTopItem__buttonStyle--blue") ){ $tag = '<a href="javascript:void(0)" class="detailTopItem__buttonStyle--blue is-buttonDisabled">入荷通知</a>' }else if($notificationBtn.hasClass("detailItem__button--blue") ){ $tag = '<a href="javascript:void(0)" class="detailItem__button--blue is-buttonDisabled">入荷通知</a>' } }else if( !$notificationBtn.hasClass("js-searchTag")){ $tag = '<a href="javascript:void(0)" class="detailTopItem__buttonStyle is-buttonCancel js-singleNotification js-removeNotification" contentsId ="'+$aid+'">入荷の通知を取り消す</a>'; } if(extention == 3){ if($notificationBtn.hasClass("js-seriesTag")){ bttn.before($tag); bttn.remove(); }else{ bttn.closest("li").html($tag); } }else{ bttn.removeClass($currentClass).addClass($nextClass); } } },$kbn); } } } }); } function addBook ($btn) { var bookTutrialDispFlg = false; var url = "/rsf-svc/shelf/addtobookshelf/"; var tag = '<span class="detailTopItem__buttonStyle is-buttonDisabled"><span class="detailTopItem__iconBookshelf">本棚に追加する</span></span>'; var alertMessage = "本棚に追加しました。"; var errorMessages = { "2124" : "すでに本棚に追加されています。", "WARN" : "本棚へ追加できませんでした。", "ERROR" : "本棚へ追加できませんでした。" }; if ($btn.hasClass('doubleSubmit')) { return; } else { $btn.addClass('doubleSubmit'); } var data = { aid : $btn.attr('contentsId') }; callAjaxCart($btn, url, data, function ($btnCallBack, errorCode, response) { $btn.removeClass('doubleSubmit'); if(errorCode == "2124"){ $($btnCallBack.parent(".detailTopItem__buttonListBoxItem")).html(tag); showErrorAlert(errorMessages[errorCode]); }else if((errorCode == "WARN") || (errorCode == "ERROR")){ showErrorAlert(errorMessages[errorCode]); }else{ //現在のURLから特定のパラメータの値を取得する function getUrlParameter(paramName, defaultValue) { var searchParam = location.search.match(new RegExp('(?:\\?|&)' + paramName + '(?:=([^&]*))?')); var paramRes = (searchParam && 1 < searchParam.length) ? decodeURIComponent(searchParam[1]) : defaultValue; return paramRes; }; var data = {"event":"dmp.add_bookshelf.click","user.tracking_id":"1734082194550.4877305643","user.user_id":"","access_time":"1734082194","products":[]}; var cartCsParam = null; if($btn.attr('csParam') != undefined){ cartCsParam = $btn.attr('csParam'); } //csパラメータ(cartCsParam)が指定されている場合、dataLayerに指定されたcsパラメータを設定 //URLにcsパラメータが存在すれば、その値をparameter.csとしてdataLayerに送る //存在しなければcookieから取得した値をCSパラメータとしてdataの要素に追加する if(cartCsParam != null){ data['parameter.cs'] = encodeURIComponent(cartCsParam); }else if(getUrlParameter('cs')){ data['parameter.cs'] = getUrlParameter('cs', null); }else{ //例外的にトップ画面のpickupブロックでカート追加した場合は、クッキーの値ではなく'pickup_フロア名'を使用する if ($btn.hasClass("pickupProductList__itemAddCart")){ //ドメイン以降のパスからフロア名を取得する。存在しなければ'pickup_top'と定義する data['parameter.cs'] = 'pickup_' + (window.location.pathname.replace(/\u002f/g,"") || 'top'); }else{ data['parameter.cs'] = $.cookie('cs'); } } if ($btn.attr('contentsId') && $btn.attr('contentsIdPrice')) { var products_price = $btn.attr('contentsIdPrice').split(','); $btn.attr('contentsId').split(',').forEach(function(product,index){ product && data.products.push({ "iid": product, "price": products_price[index] }); }); } else if (data.event == 'dmp.add_bookshelf.click' && $btn.attr('contentsId')) { // 本棚追加ボタンクリック時のproduct価格情報設定 $btn.attr('contentsId').split(',').forEach(function(product,index){ product && data.products.push({ "iid": product, "price": '0' }); }); } dataLayer.push(data); $($btnCallBack.parent(".detailTopItem__buttonListBoxItem")).html(tag); showCommonAlert(alertMessage); setTimeout(manageBookShelfModal, 1000, $btn, 'addBook'); } },"bookshelf"); } $(function() { $(document).on('click','.js-addCart', function(){ var _this = $(this); addCart(_this); }); $(document).on('click','.js-addKeep', function(){ var _this = $(this); addKeep(_this); }); $(document).on('click','.js-addBook', function(){ var _this = $(this); addBook(_this); }); $('img.js-imgLazyload').lazyload({ threshold: 200, load: function(e){ $(this).closest('.js-imgLoading').removeClass('js-imgLoading'); $(this).parent().parent().parent().parent().find('.js-infoLazyload').removeClass('js-infoLoading'); } }); $('.js-userIcon').each(function(){ var $userImg = $(this).find('img'); var frameWidth = $(this).width(); var imgWidth = $userImg.width(); var imgHeight = $userImg.height(); $(this).append('<div class="iconLoader">Loading...</div>'); setTimeout(function(){ $userImg.addClass('is-display'); $('.iconLoader').css('display','none'); },1000); if( imgWidth > imgHeight) { $userImg.height(frameWidth); } else { $userImg.width(frameWidth); } }); $(document).on('click', '.js-viewblock', function(){ $.cookie("listViewType","1",{expires: 180,path:"/"}); }); $(document).on('click', '.js-viewlist', function(){ $.cookie("listViewType","0",{expires: 180,path:"/"}); }); $(document).on('click','.js-browser', function(){ $url = "/rsf-svc/browser/auth/"; $btn = $(this); if($btn.attr('adultCheck') > 0){ $('body').addClass('is-adultCheck'); $('.modalAdultCheck.modalAdultCheck--over').css('display','block'); $clickButton = $btn; return; } if($btn.hasClass('doubleSubmit')){ return; }else{ $btn.addClass('doubleSubmit'); } $data = { aid : $btn.attr('contentsId'), sampleFlg : $btn.attr('sample'), saleFlg : ($btn.attr('sale') != undefined) ? 1 : 0, returnPath : location.pathname }; if($btn.attr('titleId') != undefined){ $data.titleId = $btn.attr('titleId'); } if(location.search != undefined){ $data.getparameter = location.search; } callAjaxCart($btn,$url,$data,function(buttn,errorCode,response){ //現在のURLから特定のパラメータの値を取得する function getUrlParameter(paramName, defaultValue) { var searchParam = location.search.match(new RegExp('(?:\\?|&)' + paramName + '(?:=([^&]*))?')); var paramRes = (searchParam && 1 < searchParam.length) ? decodeURIComponent(searchParam[1]) : defaultValue; return paramRes; }; var data = {"event":"dmp.read_browser.click","user.tracking_id":"1734082194550.4877305643","user.user_id":"","access_time":"1734082194","products":[]}; var cartCsParam = null; if($btn.attr('csParam') != undefined){ cartCsParam = $btn.attr('csParam'); } //csパラメータ(cartCsParam)が指定されている場合、dataLayerに指定されたcsパラメータを設定 //URLにcsパラメータが存在すれば、その値をparameter.csとしてdataLayerに送る //存在しなければcookieから取得した値をCSパラメータとしてdataの要素に追加する if(cartCsParam != null){ data['parameter.cs'] = encodeURIComponent(cartCsParam); }else if(getUrlParameter('cs')){ data['parameter.cs'] = getUrlParameter('cs', null); }else{ //例外的にトップ画面のpickupブロックでカート追加した場合は、クッキーの値ではなく'pickup_フロア名'を使用する if ($btn.hasClass("pickupProductList__itemAddCart")){ //ドメイン以降のパスからフロア名を取得する。存在しなければ'pickup_top'と定義する data['parameter.cs'] = 'pickup_' + (window.location.pathname.replace(/\u002f/g,"") || 'top'); }else{ data['parameter.cs'] = $.cookie('cs'); } } if ($btn.attr('contentsId') && $btn.attr('contentsIdPrice')) { var products_price = $btn.attr('contentsIdPrice').split(','); $btn.attr('contentsId').split(',').forEach(function(product,index){ product && data.products.push({ "iid": product, "price": products_price[index] }); }); } else if (data.event == 'dmp.add_bookshelf.click' && $btn.attr('contentsId')) { // 本棚追加ボタンクリック時のproduct価格情報設定 $btn.attr('contentsId').split(',').forEach(function(product,index){ product && data.products.push({ "iid": product, "price": '0' }); }); } dataLayer.push(data); // 本棚チュートリアルモーダル表示判定処理 var bookTutrialDispFlg = manageBookShelfModal($btn, 'dispViewer'); if(!bookTutrialDispFlg){ // ブラウザビューワに遷移 location.href = response.browserUrl; } }); }); var clickViewerFlg = 0; if(clickViewerFlg){ var pos = "".indexOf('?intentFlg'); var viewerAfterUrl = "".substring(0,pos); history.replaceState(null,null,viewerAfterUrl); } $(document).on('click','.btnPreorder', function(){ $.cookie("after_login_click",$(this).attr("id"),{path:"/", expires:1, secure:true}); var url = window.location.href; location.href="/login/start?sendUrl=" + encodeURIComponent(url); }); $(document).on('click', '.js-authorNotification,.js-singleNotification,.js-seriesNotification', function(){ $btn = $(this); $aid = $(this).attr('contentsId'); $authorNm = ""; $authorId = ""; $tid = ""; cookieJunle = ""; var checked = $(this).is(':checked') if(checked){ $flg = 0; }else{ $flg = 1; } if($btn.hasClass("js-singleNotification")){ $kbn = 3; cookieJunle = "single"; }else if($btn.hasClass("js-authorNotification")){ $kbn = 2; $authorNm = $(this).attr('authorNm'); $authorId = $(this).attr('authorId'); cookieJunle = "author"; }else if($btn.hasClass("js-seriesNotification")){ $kbn = 1; $tid = $(this).attr('titleId'); cookieJunle = "series"; } $currentClass = ""; $nextClass = ""; if($btn.hasClass("js-removeNotification")){ $currentClass = "js-removeNotification"; $nextClass = "js-addNotification"; $flg = 1; $alertMessage = "入荷の通知を解除しました。"; $errorMessage = "入荷の通知登録していません。"; if($kbn == 3){ $tag = '<a href="javascript:void(0)" class="detailTopItem__buttonStyle--blue modal-open js-singleNotification js-addNotification" contentsId ="'+$aid+'">入荷したら通知する</a>'; } }else if($btn.hasClass("js-addNotification")){ $currentClass = "js-addNotification"; $nextClass = "js-removeNotification"; $flg = 0; $alertMessage = "入荷の通知を承りました。"; $errorMessage = "すでに通知を登録しています。"; if($kbn == 3){ if($btn.hasClass("js-seriesTag") ){ if($btn.hasClass("detailTopItem__buttonStyle--blue")){ $tag = '<a href="javascript:void(0)" class="detailTopItem__buttonStyle--blue is-buttonDisabled">入荷通知</a>' }else{ $tag = '<a href="javascript:void(0)" class="detailItem__button--blue is-buttonDisabled">入荷通知</a>' } }else if( !$btn.hasClass("js-searchTag")){ $tag = '<a href="javascript:void(0)" class="detailTopItem__buttonStyle is-buttonCancel js-singleNotification js-removeNotification" contentsId ="'+$aid+'">入荷の通知を取り消す</a>'; } } } $otherErrorMessage = "処理に失敗しました"; $url = "/rsf-svc/new/notification/"; $data = { aid : $aid, kbn : $kbn, flg : $flg, tid : $tid, authorNm : $authorNm, atid : $authorId, }; callAjaxCart($btn,$url,$data,function(bttn,resCode,extention){ if((resCode == "2125") || (resCode == "2126")){ if(extention == 3){ showErrorAlert($errorMessage); if($btn.hasClass("js-seriesTag")){ bttn.before($tag); bttn.remove(); }else{ bttn.closest("li").html($tag); } }else{ if(resCode == "2125"){ if($btn.hasClass("js-searchTag")){ bttn.prop('checked',false); showErrorAlert($errorMessage); }else{ bttn.prop('checked',true); bttn.removeClass("js-addNotification").addClass("js-removeNotification"); } }else if(resCode == "2126"){ bttn.prop('checked',false); bttn.removeClass("js-removeNotification").addClass("js-addNotification"); } } }else if(resCode == "OK"){ if(extention == 3){ showCommonAlert($alertMessage); if($btn.hasClass("js-seriesTag")){ bttn.before($tag); bttn.remove(); }else{ bttn.closest("li").html($tag); } }else{ bttn.removeClass($currentClass).addClass($nextClass); } }else{ if(extention != 3){ if($flg == 0){ bttn.prop('checked',false); }else{ bttn.prop('checked',true); } showErrorAlert($otherErrorMessage); }else{ showErrorAlert($otherErrorMessage); } } },$kbn); }); $('.js-login').on('click', function(){ var url = window.location.href; $(this).attr('href', "/login/start?sendUrl=" + encodeURIComponent(url )); }); var ua = navigator.userAgent; var isAndroid44xInAppBrowser = ( (ua.indexOf('Android 4.4') > 0 && ua.indexOf('Reader') > 0) ); if (isAndroid44xInAppBrowser) { $('.js-overflowScroll').overflowScroll(); } var match = location.search.match(/(\?|&)coupon(=[A-Za-z0-9]*)?($|&)/); if (match) { $('#couponModal').addClass('is-show'); couponCode = ''; if (match[2]) { couponCode = match[2].substr(1); } $('#couponCode').val(couponCode); } $('.modalMypageCoupon__buttonBox').on('click', function(e) { $btn = $(this); if($btn.hasClass('doubleSubmit')){ return; }else{ $btn.addClass('doubleSubmit'); } var postData = $("#couponRegistForm").serialize(); var couponCode = $btn.parent().find("input[name='couponCode']").val(); var check_limit = couponCode.length; var regist = $btn.parent().find(".regist"); var release = $btn.parent().find(".release"); var coupon = $("#couponModal"); var registModal = $("#couponRegistModal"); var pointTextHeader = $(".user_point_header"); registModal.css({'display' : 'none'}); if (check_limit == 12 && couponCode.match(/^[0-9a-zA-Z]+$/)) { $.ajax({ type:'POST', data: postData, url:'/mypage/useCoupon', success : function(data) { var startString = data.substr(0,15); if (startString == "<!DOCTYPE html>") { var url = window.location.href; location.href="/login/start?sendUrl=" + encodeURIComponent(url); } else { coupon.removeClass("is-show") release.css({'display' : 'none'}); registModal.css({'display' : ''}); $('#useCouponResult').html(data); var csRegex = new RegExp('[\\?&]cs(=([^&#]*)|&|#|$)'); var csParam = csRegex.exec(window.location.search); if (csParam != null && csParam[2] != "") { $('#useCouponResult').find('.to-search').attr('href', $('#useCouponResult').find('.to-search').attr('href') + '&cs=' + decodeURIComponent(csParam[2].replace(/\+/g, " "))); } clearCouponCodeText(); reloadPoint(pointTextHeader, pointTextHeaderSP); } }, error : function(XMLHttpRequest, textStatus, errorThrown) { if( XMLHttpRequest.status == 401 ){ window.location.href = "/error?errCd=SESSION_TIMEOUT"; } else { window.location.href = "/error?errCd=SYSTEM"; } } }); } else { regist.removeClass("is-show") release.css({'display' : ''}); } $btn.removeClass('doubleSubmit'); function clearCouponCodeText() { document.coupon.couponCode.value = ""; } }); $(document).on('click', '.js-autopurchase', function(){ $.cookie("after_login_click",$(this).attr("id"),{path:"/", expires:1, secure:true}); var url = window.location.href; location.href="/login/start?sendUrl=" + encodeURIComponent(url); }); $(document).on('click', '.js-autopurchase-next', function(){ $.cookie("after_login_click",$(this).attr("id"),{path:"/", expires:1, secure:true}); var url = window.location.href; location.href="/login/start?sendUrl=" + encodeURIComponent(url); }); }); function reloadPoint(pointTextHeader, pointTextHeaderSP) { $.ajax({ type : 'GET', url : '/mypage/customerinfo', dataType : 'json', success : function(data) { if (data.point != null) { pointTextHeader.text(data.point.toLocaleString()); pointTextHeaderSP.text(data.point.toLocaleString()); } }, error : function(XMLHttpRequest, textStatus, errorThrown) { } }); } $(document).ready(function(){ if((loginFlg && isMatchUrl() === 'top') || isMatchUrl() === 'featureDetail'){ appendElement('#gacha_tmpl_area', '#main', '<div id="gacha_tmpl_area"></div>'); } else { removeElement('#gacha_tmpl_area'); } }); // pjax遷移の場合画面が描画されてから処理を実行 $(document).bind('pjax:render', function() { if(loginFlg && isMatchUrl() === 'top'){ appendElement('#gacha_tmpl_area', '#main', '<div id="gacha_tmpl_area"></div>'); } else { removeElement('#gacha_tmpl_area'); } }); // 特集詳細においてガチャモーダル表示ボタンを押下した際の処理 $(".js-popUpGacha").click(function(){ if(loginFlg){ removeElement('.notPopupGacha'); $("body").append('<div id="' + tplArea + '"></div>') enableLoginGacha(); } else { // 未ログイン時マイページにリダイレクト var url = window.location.href; location.href="/login/start?sendUrl=" + encodeURIComponent(url); } }); /** * 引数に渡された画面に合致するかどうか判定(トップ、特集詳細のみ実装) * @return {String} 画面名 ex)トップ画面:top,特集詳細画面:featureDetail */ function isMatchUrl() { // 画面URLリスト var urlList = { top : '/', featureDetail : '/stc/article/campaign/' }; var requestPath = location.pathname; var requestParam = location.search; // 総合フロアトップの判定 if(requestPath === urlList.top && getUrlParam('tab') === ''){ return 'top'; // 特集詳細画面の判定 } else if(requestPath.indexOf(urlList.featureDetail) === 0){ return 'featureDetail'; } return ''; } /** * 指定したパラメータのデータを取得する関数 * @param {String} name リクエストパラメータキー * @return {String} リクエストパラメータ値もしくは空文字 */ function getUrlParam(name) { name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]'); var regex = new RegExp('[\\?&]' + name + '=([^&#]*)'); var results = regex.exec(location.search); return results === null ? '' : results[1].replace(/\+/g, ' '); }; // 存在しない要素を対象となる要素に追加 function appendElement(selector, targetSelector, addElement) { if(!$(selector).length){ $(targetSelector).append(addElement); } } // 対象となる要素を削除 function removeElement(selector) { if($(selector).length){ $(selector).remove(); } } /** * 本棚チュートリアルモーダル表示処理 * ログイン時、かつ、本棚モーダル表示制御用のcookieが存在していない場合、かつ、 * 本棚チュートリアル非表示用のクラス属性が存在していない場合にモーダルを表示(⇦試し読みボタン・サインインして読むボタンの場合は非表示とする為) * @param {Object} イベント発火オブジェクト * @return {Boolean} 後続処理実行フラグ */ function manageBookShelfModal(_this, type){ // 今すぐ見るボタン押下時、チュートリアル閉じるボタン押下イベントにブラウザアプリを立ち上げる為のクラス属性を追加する if(type == 'dispViewer'){ if(!$('.js-bookshelf-modal-close').hasClass('js-browser')){ $('.js-bookshelf-modal-close').addClass('js-browser'); $('.js-bookshelf-modal-close').attr('contentsId', $(_this).attr('contentsId')); } } else { if($('.js-bookshelf-modal-close').hasClass('js-browser')) $('.js-bookshelf-modal-close').removeClass('js-browser'); } if(!$(_this).hasClass('no-bookshelf-tutrial-modal') && loginFlg && !$.cookie('tlab.bookshelfMenuButtonListTutorialView')){ var contentsTitle = $(_this).attr('contentsTitle'); $("#modalTutorialText").html(contentsTitle); // 表示制御用のcookieを登録 var bookShelfModalExpire = new Date('2037/12/31 23:59:59'); // モーダル表示制御用のcookieを登録 document.cookie = "tlab.bookshelfMenuButtonListTutorialView=true; path=/; expires=" + bookShelfModalExpire.toUTCString() + "; secure=true;"; $("#bookshelfModal").addClass("is-show"); return true; } else { return false; } } /** * コンソールログ出力処理 * @param {String|Object} logInfo ログ出力内容 */ function commonConsoleLog(logInfo) { // 本番環境以外の場合かつ、ログ出力処理を実行 if(storeId != 'prod' && debugViewFlg){ console.log(logInfo); } } </script> <div class="detailTopItem__alertBox js-detailModal" id="modalCommon"> <p class="detailTopItem__alertText"></p> <p class="detailTopItem__alertClose modal-close"> </p> </div> <script> //キャンペーンheader削除 function closeCampaignNotice(campaignId){ //キャンペーンのお知らせ非表示 $('#campaignNotice').css('height', '0px'); //cookieを取得して配列化 var cookies = document.cookie.split(";"); var rejectCampaign = ""; // //reject_campaign_idsが存在するかチェック for (i = 0; i < cookies.length; i++) { var cookie = cookies[i].split("="); if (cookie[0].trim() == "reject_campaign_ids") { //値を取得する rejectCampaign = cookie[1]; } else { continue; } } if(rejectCampaign){ //rejectCampaignの値を配列化 var campaignIds = rejectCampaign.split(","); //今回非表示にしたキャンペーンのidをセット campaignIds.push(campaignId); }else{ //今回非表示にしたキャンペーンのidをセット var campaignIds = [campaignId]; } //cookieに非表示にするキャンペーンidをカンマ区切りで,保持期間(1日間)をmax-ageでセット document.cookie = 'reject_campaign_ids='+campaignIds.join(',')+'; max-age=86400;'; } function showCommonAlert(message, mode){ var modal = '#modalCommon'; $(modal).children(".detailTopItem__alertText:first").text(message) $(modal).css('display','none'); if (mode == 'error') { $(modal).addClass('is-alertRed'); } else { $(modal).removeClass('is-alertRed'); } $(modal).fadeIn('fast'); setTimeout(function(){ $(modal).fadeOut('fast'); },1000); } function showErrorAlert(message){ showCommonAlert(message, 'error'); } $(function() { saveSearchHistory(); }); /** * 検索履歴をローカルストレージに保存する * * ・SP:4件, PC:5件まで保存 * ・重複は先頭に移動 */ function saveSearchHistory() { // 検索ワード var query = getParam('q'); if (!query) { return; } var canUseLocalStorage = localStorageAvailable(); var searchHistoryStr = new String(); // localStorageの使用可否から取得元を判定 if (canUseLocalStorage) { searchHistoryStr = decodeURIComponent(localStorage.getItem('searchHistory')); } else { var arrCookie = cookieToArray(); searchHistoryStr = decodeURIComponent(arrCookie['searchHistory']); } // うまくparseできない場合はリセット(空配列)する var searchHistory = isJSON(searchHistoryStr) ?JSON.parse(searchHistoryStr): []; if (!Array.isArray(searchHistory)) { searchHistory = []; } // 検索文字列が既にある場合は削除 searchHistory.forEach(function (item, i){ if (item === query) { searchHistory.splice(i, 1); } }); // PC: searchHistoryに5件以上ある場合は古い検索ワードを削除 if (searchHistory.length >= 5) { searchHistory.pop(); } // 検索ワードを先頭に挿入 searchHistory.unshift(query); // localStorageまたはcookieに保存 // localStorageの使用可否から保存先を判定 if (canUseLocalStorage) { localStorage.setItem('searchHistory', encodeURIComponent(JSON.stringify(searchHistory))); } else { var expire = new Date(); expire.setTime( expire.getTime() + 86400000 * 30); // 30日 document.cookie = 'searchHistory=' + encodeURIComponent(JSON.stringify(searchHistory)) +'; path=/; expires=' + expire.toUTCString(); } } /** * URLから特定パラメータの値を取得 * @param name * @param url * @returns {*} */ function getParam(name, url) { if (!url) url = window.location.href; name = name.replace(/[\[\]]/g, "\\$&"); var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), results = regex.exec(url); if (!results) return null; if (!results[2]) return ''; return decodeURIComponent(results[2].replace(/\+/g, " ")); } /** * 検索履歴を表示する * */ function drawSearchHistoryList() { var canUseLocalStorage = localStorageAvailable(); var searchHistoryStr = new String(); var searchHistory = new Array(); // localStorage使用可否から取得元を判定 if (canUseLocalStorage) { searchHistoryStr = decodeURIComponent(localStorage.getItem('searchHistory')); } else { var arrCookie = cookieToArray(); searchHistoryStr = decodeURIComponent(arrCookie['searchHistory']); } // うまくparseできない場合は空配列 var searchHistory = isJSON(searchHistoryStr) ?JSON.parse(searchHistoryStr): []; if (!Array.isArray(searchHistory)) { searchHistory = []; } // 履歴がない場合は検索履歴リストを表示せずにreturn if (searchHistory.length <= 0) { return; } // 検索履歴リストを整形する var searchHistoryList = '<dt class="header__searchRecommendTitle header__searchRecommendTitle--is-history">最近の検索履歴</dt><dd class="header__searchRecommendBody"><ul class="header__searchHistoryList">\n'; searchHistory.forEach(function(item){ // xss対策として、検索履歴の文字列をエスケープする var itemToEncode = escapeHtml(item); var queryItem = encodeURIComponent(item) var queryItemToEncode = escapeHtml(queryItem); searchHistoryList += '<li class="header__searchHistoryItem"><a href="/search/?q=' + queryItemToEncode + '&cs=search" class="header__searchHistoryLink">' + itemToEncode + '</a></li>\n'; }); searchHistoryList += '</ul></dd>'; // 検索履歴リストを描画する $('.header__searchRecommendInner').prepend(searchHistoryList); } /** * jsの文字列をhtmlエスケープする * @return {string} */ function escapeHtml (string) { return string.replace(/[&'`"<>]/g, function(match) { return { '&': '&', "'": ''', '`': '`', '"': '"', '<': '<', '>': '>', }[match] }); } /** * localStorageの使用可否をチェック * @returns {boolean} */ function localStorageAvailable(){ try{ var storage = window['localStorage'], x = '__storage_test__'; storage.setItem(x, x); storage.removeItem(x); return true; }catch(e){ return false; } } /** * cookieを配列に変換する * @returns {Array} */ function cookieToArray() { var cookies = (document.cookie).split(/;\s/); var arrCookie = []; for (var i=0;i < cookies.length; i++) { var data = cookies[i].split('='); arrCookie[data[0]] = data[1]; } return arrCookie; } /** * JSONか確認する * @param arg * @returns {boolean} */ function isJSON(arg) { arg = (typeof arg === "function") ? arg() : arg; if (typeof arg !== "string") { return false; } try { arg = (!JSON) ? eval("(" + arg + ")") : JSON.parse(arg); return true; } catch (e) { return false; } }; // 一覧から探すを押した時に発火 $(function() { $('.topSubMenu__menuLink--search').on('click',function(){ $(this).toggleClass('is-open'); return false; }) }); $(document).on('click touchend',function(e){ if(!$(e.target).closest('.topSubMenu__menuItem--search').parent().length){ $('.topSubMenu__menuLink--search').removeClass('is-open'); } }); // フローティングバナーとして表示するため、個別通知をグローバル変数に渡す。 var __RS__ = window.__RS__ || {}; __RS__.customerCaseActivities = []; </script> <div class="modalGeneral" data-modal="coupon" id="couponModal"> <div class="modalGeneral__overlay js-modalClose"></div> <div class="modalGeneral__inner"> <div class="modalGeneral__contentWrapper"> <div class="modalGeneral__titleBox"> <h2 class="modalGeneral__title">クーポンコード登録</h2> <button class="modalGeneral__closeButton js-modalClose"> 閉じる </button> </div> <div class="modalGeneral__content"> <div class="modalGeneral__contentInner"> <form id="couponRegistForm" class="form-inline" name="coupon" role="form" method="post" enctype="multipart/form-data"> <div class="modalMypageCoupon"> <div class="modalMypageCoupon__inner"> </div> <div class="modalMypageCoupon__inputBox"> <input type="text" name="couponCode" onKeyPress="return submitStop(event);" maxlength="12" id="couponCode" class="modalMypageCoupon__input" /> </div> <div class="modalMypageCoupon__buttonBox"> <a href="javascript:void(0);" class="modalMypageCoupon__button js-modalOpen" data-modal="couponRegist" id="couponRegist">登録</a> <p class="modalMypageCoupon__caution regist" style="display: none;">ポイントが追加されました。<br />ポイント明細ページからご確認いただけます。</p> <p class="modalMypageCoupon__caution release" style="display: none;">クーポンコードの形式が正しくありません。<br />半角英数12桁で入力してください。</p> </div> </div> </form> </div> </div> </div> </div> </div> <div class="dialog is-small" data-modal="couponRegist" id="couponRegistModal"> <div class="dialog__overlay js-modalClose couponModalClose"></div> <div class="dialog__inner"> <div class="dialog__contentWrapper"> <div class="dialog__content"> <div class="dialog__contentInner" id="useCouponResult"></div> </div> <div class="dialog__contentButtonWrapper--single"> <a href="javascript:void(0);" class="dialog__contentButton js-modalClose couponModalClose">閉じる</a> </div> </div> </div> </div> <div class="dialog" data-modal="maCouponRegist" id="maCouponRegistModal"> <div class="dialog__overlay js-modalClose"></div> <div class="dialog__inner dialog__inner--coupon"> <div class="dialog__contentWrapper"> <div class="dialog__content"> <div class="dialog__contentInner"> <div class="dialog__titleImageBox"> <h2 class="dialog__titleImage">Reader Storeをご利用のお客様へ</h2> <div class="dialog__closeButton js-modalClose"></div> </div> <div class="dialog__contentBox"> <div class="dialog__couponImage"> <div class="dialog__couponImageInner js-couponTitle"> </div> </div> </div> </div> </div> <div class="dialog__contentButtonWrapper--single"> <a href="javascript:void(0);" class="dialog__contentButton js-modalClose">閉じる</a> </div> </div> </div> </div> <div class="dialog" data-modal="maCouponErr" id="maCouponErrModal"> <div class="dialog__overlay js-modalClose"></div> <div class="dialog__inner dialog__inner--coupon"> <div class="dialog__contentWrapper"> <div class="dialog__content"> <div class="dialog__contentInner"> <div class="dialog__titleImageBox"> <h2 class="dialog__titleImage">ご利用ありがとうございます!</h2> <div class="dialog__closeButton js-modalClose"></div> </div> <div class="dialog__contentBox--titleOnly"> <p class="dialog__paragraph">エラー(エラーコード: )</p> <p class="dialog__paragraph"></p> </div> </div> </div> <div class="dialog__contentButtonWrapper--single"> <a href="javascript:void(0);" class="dialog__contentButton js-modalClose">閉じる</a> </div> </div> </div> </div> <div class="dialog" data-modal="bookshelf" id="bookshelfModal"> <div class="dialog__overlay js-modalClose"></div> <div class="dialog__inner is-tutorial"> <div class="dialog__contentWrapper"> <div class="dialog__content"> <div class="dialog__closeButton js-modalClose"></div> <div class="dialog__contentInner"> <div class="modalTutorial"> <div class="modalTutorial__inner"> <div class="modalTutorial__section"> <h2 class="modalTutorial__title">本棚に以下の作品が追加されました</h2> <p class="modalTutorial__text" id='modalTutorialText'></p> </div> <div class="modalTutorial__section"> <h3 class="modalTutorial__subTitle">追加された作品は本棚から読むことが出来ます</h3> <p class="modalTutorial__text">本棚を開くには、画面右上にある「本棚」ボタンをクリック</p> <p class="modalTutorial__text">スマートフォンの場合</p> <img src="/cms-assets/materials/bookshelf_tutorial_sp.jpg" class="modalTutorial__image modalTutorial__image--is-wide" alt=""> <p class="modalTutorial__text">パソコンの場合</p> <img src="/cms-assets/materials/bookshelf_tutorial_pc.png" class="modalTutorial__image modalTutorial__image--is-wide" alt=""> </div> </div> </div> </div> </div> <div class="dialog__contentButtonWrapper--double"> <a href="javascript:void(0);" class="dialog__contentButton js-modalClose js-bookshelf-modal-close">閉じる</a> <a href="/mybook/list/" class="dialog__contentButton">本棚を見る</a> </div> </div> </div> </div> <script type="text/javascript"> var boxH = $('.autherName__mainBox').height()*3; TLAB.push(['Recommend::Iframe', 'rec_popular', '3003001', null,null,null,null,null, {'date':'20241213182954' , 'author':"\u8af8\u6a4b\u5e78\u6075", 'ua':'pc' }]); TLAB.push(['Recommend::Iframe', 'rec_feature', '3003002', null,null,null,null,null, {'date':'20241213182954' , 'author':"\u8af8\u6a4b\u5e78\u6075", 'ua':'pc' }]); TLAB.push(['Recommend::Iframe', 'rec_checked', '3003003', null,null,null,null,null, { 'date':'20241213182954' ,'ua':'pc' } ] ); </script> </body> </html>