「Skin Coordinate 移植ツール」を修復更新しました
管理画面サイドメニュー変更に対応して、ツールのデザインを修復しました。
このツールは幾つか問題を抱えてました。 原因は、管理ページのレイアウト変更ですが、今年の2月末の更新で問題が生じていた様です。 以下は2月の参考記事です。
「Skin Coordinate 移植ツール」は、「デザインの変更」「ブログデザインのCSSの編集」「サイドバーの配置設定」の管理画面を開きますが、そのレイアウトが崩れていました。 酷いのは、ヘッダーのリンクのクラス名が変更され、「CSSの編集」の画面は機能が一部損なわれていました。 今回、チェックして良かった。
下は「デザインの変更」を開いた所で、表示の左端の背景が欠けています。 こういったレイアウト崩れを全て修復しました。 更にブラシュアップを行い、ヘルプボタンを追加しています。
ニーズは少なくてもイケてるツール
「Skin Coordinate 移植ツール」は、「公式スキン」をアレンジ可能な「CSS編集用デザイン」のスキンに移植するツールです。 移植はすぐ終わり何も変わらないので、「本当に移植された?」と思うかも知れません。
しかし、「デザインの変更」を開くとスキンは「CSS編集用デサイン」に変わっています。
このツールを作ったきっかけは、あるユーザーが「長く親しんだスキンで変えたくないが、記事タイトルだけが気に入らない」といった事を書いていたからです。「公式スキン」のアレンジは、「フリースペース」にコードを書き込む方法がありますが、アレンジ適用が僅かに遅れる難点があります。 また、アレンジしたい箇所が増えて来ると、次第に扱い難くなります。
公式スキンを移植した「CSS編集用デサイン」のスキンは、その点では理想的です。 後々手を加えて行く事や、高度なアレンジを追加する事も自在に出来ます。 他のブログシステムでは、「公式スキン」のアレンジが標準で可能な場合が多いのですが、このツールはアメーバでそれを可能にします。
「Skin Coordinate 移植ツール」の操作方法
このツール扱い方の詳細は、以下のマニュアルを参照ください。
「Skin Coordinate 移植ツール」を利用するには
このツールは Chrome / Edge / Firefox版の拡張機能「Tampermonkey」上で動作します。 以下に、このツールの導入手順を簡単に説明します。
❶「Tampermonkey」を導入します
◎ 使用しているブラウザに拡張機能「Tampermonkey」を導入する事が必要です。
既に「Tampermonkey」を導入している場合は、この手順 ❶ は不要です。
拡張機能の導入については、以下のページに簡単な説明があるので参照ください。
❷「Tampermonkey」にスクリプトを登録します
◎「Tampermonkey」の「+」マークの「新規スクリプト」タブを開きます。
◎「新規スクリプト」には、最初からテンプレートが記入されています。 これは全て削除して、完全に空白の編集枠に 下のコードをコピー&ペーストします。
〔コピー方法〕 軽量シンプルなツール「PreBox Button 」を使うと
コード枠内を「Ctrl+左Click」➔「Copy code 」を「左Click」
の操作で、掲載コードのコピーが可能になります。
◎ 最後に「ファイル」メニューの「保存」を押すと、ツールが使用可能になります。
〔 Skin Coordinate 移植ツール 〕ver. 0.8
// ==UserScript== // @name Skin Coordinate 移植ツール // @namespace http://tampermonkey.net/ // @version 0.8 // @description 公式スキンをCSS編集用デザインのスキンに移植する // @author Ameba Blog User // @match https://ameblo.jp/* // @match https://blog.ameba.jp/ucs/skin/* // @match https://blog.ameba.jp/ucs/editcss/* // @match https://blog.ameba.jp/ucs/sidebar/* // @run-at document-start // @noframes // @grant none // ==/UserScript== let ua=0; // Chromeの場合のフラグ let agent=window.navigator.userAgent.toLowerCase(); if(agent.indexOf('firefox') > -1){ ua=1; } // Firefoxの場合のフラグ let task=0; // メイン ON/OFF let skin_code; // ブログスキンのコード名 let skincss; // ブログスキンのCSS let b1_open=0; // スキンCSSの表示/非表示 let b2_open=0; // トップページ型式・カラムの設定パネル let b3_open=0; // 移植の実行 let b4_open=0; // 復帰の実行 let redo_navi=0; // 再実行のコントロール let get=0; // 元スキンコードの取得完了のフラグ let type; // トップページ型式 let layout; // カラム設定 2~6 let target=document.querySelector('head'); let monitor=new MutationObserver(catch_key); monitor.observe(target, { childList: true }); catch_key(); function catch_key(){ if(check_user_css()==0 || check_user_css()==1){ // 実際のブログページが起動条件 document.addEventListener("keydown", check_key); function check_key(event){ let gate=-1; if(event.altKey==true){ if(event.keyCode==117){ event.preventDefault(); gate=1; }} // ショートカット「Alt+F6」 if(gate==1){ event.stopImmediatePropagation(); event.preventDefault(); main(); }} // ツールの実効関数 }} // catch_key function check_user_css(){ let page_html=document.querySelector('html'); if(!page_html.classList.contains('fixed')){ return -1; } // プレビュー画面の場合の判定 else{ // 実際のブログ画面の場合と判定 skin_code=page_html.getAttribute('data-skin-code'); if(skin_code){ if(skin_code.includes('cssedit')){ return 1; } // ページのスキンがCSS編集用デザインの判定 else{ return 0; }}}} // ページのスキンが通常の公式スキンの判定 function main(){ if(task==0){ task=1; panel1_disp(); coordinate(); } else if(task==1){ task=0; panel1_remove(); panel2_remove(); hide_css(); }} function panel1_disp(){ let help_url='https://ameblo.jp/personwritep/entry-12817550826.html'; let help_SVG= '<svg class="sci_help" height="24" width="24" viewBox="0 0 210 220">'+ '<path d="M89 22C71 25 54 33 41 46C7 81 11 142 50 171C58 177 68 182 78 '+ '185C90 188 103 189 115 187C126 185 137 181 146 175C155 169 163 162 169 '+ '153C190 123 189 80 166 52C147 30 118 18 89 22z" style="fill: #eee;"></path>'+ '<path d="M67 77C73 75 78 72 84 70C94 66 114 67 109 83C106 91 98 95 93 '+ '101C86 109 83 116 83 126L111 126C112 114 122 108 129 100C137 90 141 76 '+ '135 64C127 45 101 45 84 48C80 49 71 50 68 54C67 56 67 59 67 61L67 77M'+ '85 143L85 166L110 166L110 143L85 143z" style="fill:#000;"></path>'+ '</svg>'; let panel= '<div id="panel1">'+ '<a href="'+ help_url +'" rel="noopener noreferrer" target="_blank">'+ help_SVG +'</a>'+ '<input id="b1" type="submit" value="スキン情報">'+ '<input id="b2" type="submit" value="トップページ型式・カラムの設定">'+ '<input id="b3" type="submit" value=" 移植の実行 ">'+ '<input id="b4" type="submit" value="予備 ">'+ '<input id="editor" type="submit" value="CSS編集画面">'+ '<input id="change_skin" type="submit" value="デザインの変更">'+ '<input id="sidebar" type="submit" value="メニュー配置">'+ '<style>'+ '#panel1 { position: fixed; bottom: 90px; left: calc(50% - 490px); '+ 'background: rgba(0, 95, 86, 0.8); border: 2px solid #fff; border-radius: 4px; '+ 'width: 980px; z-index: 10; padding: 15px 0 15px 20px; } '; if(ua==1){ panel+='#panel1 { padding: 14px 0 14px 20px; } '; } panel+= '#panel1 input { font: normal 16px meiryo; color: #000; '+ 'margin-right: 15px; padding: 4px 6px 2px; } '+ '.sci_help { margin: 0 15px -7px -8px; } '+ '#b1, #b2, #b3, #b4 { outline: none; } '+ '#b4 { width: 33px; visibility: hidden; } '+ '#sidebar { margin: 0 !important; }'+ '</style></div>'; if(!document.querySelector('#panel1')){ document.body.insertAdjacentHTML('beforeend', panel); } } // panel1_disp() function panel1_remove(){ let panel1=document.querySelector('#panel1'); if(panel1){ panel1.remove(); }} function panel2_disp(){ let panel2= '<div id="panel2">'+ '<label for="t0" id="t0_l">'+ '<input id="t0" type="radio" name="blog_type" value="ur_std_pf_cssedit">'+ '標準型</label>'+ '<label for="t1" id="t1_l">'+ '<input id="t1" type="radio" name="blog_type" value="ur_list_pf_cssedit">'+ 'リスト型</label>'+ '<label for="t2" id="t2_l">'+ '<input id="t2" type="radio" name="blog_type" value="ur_tile_pf_cssedit">'+ 'タイル型</label>'+ '<span style="color: #fff">カラム: </span>'+ '<label for="c2"><input id="c2" type="radio" name="column" value="2">'+ '<i class="c_m"> </i><i class="c_tx"> </i></label>'+ '<label for="c3"><input id="c3" type="radio" name="column" value="3">'+ '<i class="c_tx"> </i><i class="c_m"> </i></label>'+ '<label for="c4"><input id="c4" type="radio" name="column" value="4">'+ '<i class="c_s"> </i><i class="c_tx"> </i><i class="c_m"> </i></label>'+ '<label for="c5"><input id="c5" type="radio" name="column" value="5">'+ '<i class="c_m"> </i><i class="c_tx"> </i><i class="c_s"> </i></label>'+ '<label for="c6"><input id="c6" type="radio" name="column" value="6">'+ '<i class="c_tx"> </i><i class="c_s"> </i><i class="c_m"> </i></label>'+ '<style>'+ '#panel2 { position: fixed; bottom: 160px; left: calc(50% - 490px); '+ 'width: 980px; padding: 14px 0 14px 20px; background: rgba(0, 95, 86, 0.8); '+ 'border: 2px solid #fff; border-radius: 4px; font: normal 16px meiryo; z-index: 10;} '+ '#panel2 input { height: 16px; width: 16px; margin: 0 4px 0 0; vertical-align: -2px; } '+ 'input#c2, input#c3, input#c4, input#c5, input#c6 '+ '{ margin-right: 10px; vertical-align: -3px; } '+ '#panel2 label { display: inline-block; padding: 6px 12px 4px; margin-right: 10px; '+ 'border-radius: 2px; color: #000; height: 25px; } '+ 'label[for="t0"], label[for="t1"], label[for="t2"] { background: #d2edff; } '+ 'label[for="t2"] { margin-right: 20px !important; } '+ 'label[for="c2"], label[for="c3"], label[for="c4"], label[for="c5"], label[for="c6"] '+ '{ background: #fff; } '+ '#panel2 .c_s { display: inline-block; border: 1px solid #000; '+ 'background: #ff9da2; width: 10px; height: 22px; margin-right: -1px; } '+ '#panel2 .c_m { display: inline-block; border: 1px solid #000; '+ 'background: #ff9da2; width: 16px; height: 22px; margin-right: -1px; } '+ '#panel2 .c_tx { display: inline-block; border: 1px solid #000; '+ 'background: #fff; width: 28px; height: 22px; margin-right: -1px; }'+ '</style></div>'; if(!document.querySelector('#panel2')){ document.body.insertAdjacentHTML('beforeend', panel2); } } // panel2_disp() function panel2_remove(){ let panel2=document.querySelector('#panel2'); if(panel2){ panel2.remove(); }} function manual_set_start(){ let t0=document.querySelector('#t0'); let t1=document.querySelector('#t1'); let t2=document.querySelector('#t2'); let t1_l=document.querySelector('#t1_l'); let t2_l=document.querySelector('#t2_l'); let c2=document.querySelector('#c2'); let c3=document.querySelector('#c3'); let c4=document.querySelector('#c4'); let c5=document.querySelector('#c5'); let c6=document.querySelector('#c6'); let page_html=document.querySelector('html'); if(skin_code.includes('wu_pf')){ t0.checked=true; t1.disabled=true; t2.disabled=true; t1_l.style.opacity='0.4'; t2_l.style.opacity='0.4'; } if(skin_code.includes('ur_std_pf')){ t0.checked=true; } if(skin_code.includes('ur_list_pf')){ t1.checked=true; t1_l.style.opacity='1'; } if(skin_code.includes('ur_tile_pf')){ t2.checked=true; t2_l.style.opacity='1'; } if(page_html.classList.contains('columnA')){ c2.checked=true; } if(page_html.classList.contains('columnB')){ c3.checked=true; } if(page_html.classList.contains('columnC')){ c4.checked=true; } if(page_html.classList.contains('columnD')){ c5.checked=true; } if(page_html.classList.contains('columnE')){ c6.checked=true; }} function manual_set_get(){ let t0=document.querySelector('#t0'); let t1=document.querySelector('#t1'); let t2=document.querySelector('#t2'); let c2=document.querySelector('#c2'); let c3=document.querySelector('#c3'); let c4=document.querySelector('#c4'); let c5=document.querySelector('#c5'); let c6=document.querySelector('#c6'); let page_html=document.querySelector('html'); if(t0.checked==true){ if(skin_code.includes('wu_pf')){ type='wu_pf_cssedit'; } else{ type=t0.value; }} if(t1.checked==true){ type=t1.value; } if(t2.checked==true){ type=t2.value; } if(c2.checked==true){ layout=c2.value; } if(c3.checked==true){ layout=c3.value; } if(c4.checked==true){ layout=c4.value; } if(c5.checked==true){ layout=c5.value; } if(c6.checked==true){ layout=c6.value; }} function coordinate(){ let b1=document.querySelector('#b1'); let b2=document.querySelector('#b2'); let b3=document.querySelector('#b3'); let b4=document.querySelector('#b4'); let editor=document.querySelector('#editor'); let change_skin=document.querySelector('#change_skin'); let sidebar=document.querySelector('#sidebar'); task_navi_reset(); // CSSコードを取得するまで、b2・b3は押せない b1.onclick=function(){ if(b1_open==0){ b1_open=1; b1.style.boxShadow='0 0 0 2px #2196f3, 0 0 0 4px #fff'; open_css(); if(check_user_css()==0){ b2.disabled=false; }} else{ b1_open=0; b1.style.boxShadow='none'; hide_css(); if(b2_open==1){ // b1が閉じた場合は、panel2も閉じる b2_open=0; b2.style.boxShadow='none'; panel2_remove(); } if(b3_open==1){ b3_open=0; b3.style.boxShadow='none'; } task_navi_reset(); }} b2.onclick=function(){ if(b2_open==0){ b2_open=1; b2.style.boxShadow='0 0 0 2px #2196f3, 0 0 0 4px #fff'; panel2_disp(); manual_set_start(); b3.disabled=false; } else{ b2_open=0; b2.style.boxShadow='none'; panel2_remove(); b3.disabled=true; }} b3.onclick=function(){ if(b3_open==0 || b3_open==1){ b3_open=1; b3.style.boxShadow='0 0 0 2px #2196f3, 0 0 0 4px #fff'; if(redo_navi==0){ redo_navi=1; // 初回移植処理の実効済 rewrite_css(); } else{ // 再処理は表示CSSをリセット hide_css(); open_css(); setTimeout(()=>{ if(get==1){ rewrite_css(); } }, 100); } // 処理までにCSSコード取得のタイミング必要 setTimeout(()=>{ open_skinselect(); }, 200); setTimeout(()=>{ editor.disabled=false; editor.style.visibility='visible'; }, 1000); }} editor.onclick=function(){ let open_url='https://blog.ameba.jp/ucs/editcss/srvcssupdateinput.do'; window.open(open_url, null, 'top=50,left=100,width=830,height=920'); } change_skin.onclick=function(){ let open_url='https://blog.ameba.jp/ucs/skin/skinselecttop.do'; window.open(open_url, null, 'top=50,left=100,width=895,height=920'); } sidebar.onclick=function(){ let open_url='https://blog.ameba.jp/ucs/sidebar/srvsidebarupdateinput.do'; window.open(open_url, null, 'top=50,left=100,width=830,height=700'); } } // coordinate() function task_navi_reset(){ let b2=document.querySelector('#b2'); let b3=document.querySelector('#b3'); let b4=document.querySelector('#b4'); let editor=document.querySelector('#editor'); b1_open=0; b2_open=0; if(check_user_css()==0){ b2.disabled=true; b3.disabled=true; if(redo_navi==0){ editor.disabled=true; editor.style.visibility='hidden'; } else{ editor.disabled=false; editor.style.visibility='visible'; }} if(check_user_css()==1){ b2.disabled=true; b3.disabled=true; editor.disabled=false; editor.style.visibility='visible'; }} function open_css(){ let page_html=document.querySelector('html'); skin_code=page_html.getAttribute('data-skin-code'); if(skin_code){ disp_css(0); // コード表示枠「#output」を表示 disp_css(1); // スキンコード名を表示 document.querySelector('#output_n').innerHTML='skin-code : '+ skin_code; if(skin_code.includes('cssedit')){ disp_css(3); } // ページのスキンがCSS編集用デザインの場合は表示 let xmlhttp=new XMLHttpRequest(); let css_url='https://stat100.ameba.jp/p_skin/'+ skin_code +'/css/skin.css'; xmlhttp.open('GET', css_url ); // CSSコードを取得する xmlhttp.send(); xmlhttp.onreadystatechange=function(){ if(xmlhttp.readyState==4){ if(xmlhttp.status==200){ let output=document.querySelector('#output'); output.textContent=xmlhttp.responseText; // 取得したCSSを output枠に表示 get=1; } // 取得終了のフラグ else{ alert('status='+ xmlhttp.status); }}}} } // open_css() function disp_css(mode){ let output; let style; if(mode==0){ output=document.createElement('textarea'); } else{ output=document.createElement('div'); } if(mode==0){ style= 'position: fixed; top: 126px; right: 20px; width: 600px; height: 30vh; '+ 'padding: 15px; border: 8px solid #90a4ae; color: #000; background: #fff; '+ 'font: normal 16px/1.6 Meiryo; outline: none; white-space: pre; '+ 'resize: vertical; z-index: 2020;'; output.setAttribute('id', 'output'); output.setAttribute('readonly', ''); } if(mode==1){ style= 'position: fixed; top: 90px; right: 20px; width: 600px; color: #fff; '+ 'padding: 2px 15px 0; border: 8px solid #90a4ae; background: #90a4ae; '+ 'font: bold 16px/1.6 Meiryo; z-index: 2020;'; output.setAttribute('id', 'output_n'); } if(mode==2 || mode==3){ style= 'position: fixed; top: 20px; right: 20px; width: 600px; color: #fff; '+ 'padding: 5px 15px 0; font: normal 16px/1.6 Meiryo; z-index: 2020; '; if(mode==2){ style+='border: 8px solid #2196f3; background: #2196f3;' } if(mode==3){ style+='border: 8px solid #90a4ae; background: #90a4ae;' } output.setAttribute('id', 'output_s'); } if(mode==2){ output.innerHTML= 'このページの移植用のCSSを作成して クリップボードにコピーしました<br>'+ ' ▶ サブ画面の CSS編集枠を空白にした上で ペーストして保存をしてください'; } if(mode==3){ output.innerHTML= '⚪ このページは CSS編集用デザインのスキンを使用しています<br>'+ ' 以下は CSS編集用デザインの基本CSSで 移植処理の対象ではありません'; } output.setAttribute('style', style) if(!document.querySelector('#output')){ document.querySelector('html').appendChild(output); } if(!document.querySelector('#output_n')){ document.querySelector('html').appendChild(output); } if(!document.querySelector('#output_s')){ document.querySelector('html').appendChild(output); }} function hide_css(){ if(document.querySelector('#output')){ document.querySelector('#output').remove(); } if(document.querySelector('#output_n')){ document.querySelector('#output_n').remove(); } if(document.querySelector('#output_s')){ document.querySelector('#output_s').remove(); }} function rewrite_css(){ if(check_user_css()==0){ let output=document.querySelector('#output') let total_css=''; if(skin_code.includes('wu_pf')){ let reset_css=[ '@charset "utf-8";', '', '/*===========================================', 'CSS編集用デザインをスキン移植で利用する場合のリセットコード', '============================================*/', '', '.skinFrame {', 'padding-top: 0; }', '', '.skinBlogHeadingGroupArea {', 'padding: 0; }', '', '.skinDescription {', 'color: #fff; }', '', '.skinMessageBoard {', 'border-top: none;', 'border-bottom: none;', 'background: none; }', '', '.skinMessageBoard3 { padding: 0; }', '', '.skinArticle {', 'padding: 0;', 'border: none;', 'background: none; }', '', '.skinArticleHeader {', 'margin: 0;', 'padding: 0;', 'border-left: none; }', '', '.skinArticleTitle,', '.skinArticleTitle:hover,', '.skinArticleTitle:focus,', '.skinArticleTitle:visited {', 'font-weight: normal; }', '', '.skinArticleBody2 {', 'margin: 0; }', '', '.skinArticleFooter {', 'border-top: none; }', '', '.skinMenu {', 'background: none; }', '', '.skinMenuHeader {', 'padding: 0;', 'background: none; }', '', '.skinMenuBody {', 'margin: 0;', 'padding: 0;', 'background: none; }', '', '.skinSubHr,', '.skinSubList li {', 'border-bottom: none; }', '', '', '', ''].join('\n'); total_css=reset_css; } // 旧タイプのスキンのみ reset_cssを追加 skincss=output.textContent; let rewite_url='https://stat100.ameba.jp/p_skin/'+ skin_code +'/img/'; skincss=skincss.replace(/\.\.\/img\//g, rewite_url); //「..img」コードの修正 total_css+=skincss; let original='\n\n/* Original Skin Code:::' + skin_code +'::: */\n\n\n'; total_css+=original; // 元のスキン情報を追加 let selection=getSelection(); output.textContent=total_css; output.select(); document.execCommand('copy'); // クリップボードにコピー selection.removeAllRanges(); output.blur(); disp_css(2); // CSS変換処理が済んだ事を報告 }} // rewrite_css() function open_skinselect(){ if(!user_check()){ // 別ユーザーのページで実行不可:CSS編集デザインのCSSを失うのを防止 alert( ' ⛔ このページのスキンを移殖するCSS作成とコピーが出来ましたが\n'+ ' 「CSS編集用デザイン」にスキン変更する機能は動作しません。\n'+ ' これは、既に「CSS編集用デザイン」を運用しているユーザーが\n'+ ' 誤って適用中の「ユーザーCSS」を失う事を防ぐためです。\n\n'+ ' 「CSS編集用デザイン」への変更は、手動で行ってください。'); } else{ manual_set_get(); let open_url='https://blog.ameba.jp/ucs/skin/srvskinpreview.do?'+ 'skin_code='+ type + '&use_layout=' + layout + '&sc' window.open(open_url, null, 'top=10,left=40,width=830,height=920'); }} function user_check(){ let login_user; let blog_user=window.location.pathname.split('/')[1]; if(blog_user){ login_user=document.querySelector('._w6MHwCAy').textContent; if(login_user){ if(blog_user==login_user){ return true; }}}} window.addEventListener('DOMContentLoaded', function(){ let designTop=document.querySelector('#designTop'); let category=document.querySelector('#category'); let editCss=document.querySelector('#editCss'); let previewDesign=document.querySelector('#previewDesign'); let completeMsg=document.querySelector('#completeMsgArea'); let editArrange=document.querySelector('#editArrange'); if(designTop || category){ //「デザインの変更」の画面で動作する edit_w(); select_new_skin(); } else if(editCss){ //「CSSの編集」の画面で動作する edit_w(); editcss(); } else if(previewDesign){ //「ブログデザインの表示確認」の画面で動作する set_newskin(); } else if(completeMsg){ //「ブログデザイン適用完了」の画面で動作する complete(); } else if(editArrange){ //「サイドバーの配置設定」の画面で動作する edit_w(); }}); function edit_w(){ let style= '<style id="edit_w">'+ '#globalHeader, .l-ucs-sidemenu-area, #ucsMainRight, '+ 'ul.editTools , .infoArea , #footerAd, #globalFooter, #ucsHeader '+ '{ display: none !important; } '+ '#ucsContent { max-width: 810px; background: #fff; margin-bottom: 0; '+ 'border-radius: 0; } '+ '#ucsContent::before { content: none; } '+ '#ucsMain, #ucsMainContent { font-size: 16px; padding-top: 14px; '+ 'background: none; } '+ '#ucsMainLeft { width: 808px !important; } '+ '#ucsMainContent h1, #ucsMainLeft h1 { font: bold 21px Meiryo; '+ 'margin: 0 -16px 15px; padding: 4px 15px 8px; } '+ '.moreLink a { font-weight: bold; color: #000; } '+ '.textInputArea .textarea1 { width: 715px !important; height: 320px; '+ 'font-size: 16px; } .limText { margin: 0; } '+ 'html { overflow-y: scroll !important; } '+ '#editCss #ucsMain { padding: 14px 0 10px; } '+ '#editCss #notes { font-size: 15px; } '+ '#editCss #myframe { display: none; } '+ '#editCss #contentsForm textarea { width: 720px !important; '+ 'height: 500px; } '+ '#editCss .actionControl { padding-bottom: 20px; } '+ '#editCss .actionControl .msg { margin: -35px 0 10px; }'+ '</style>'; if(!document.querySelector('#edit_w')){ document.body.insertAdjacentHTML('beforeend', style); } } // edit_w() function select_new_skin(){ let ucsContent=document.querySelector('#ucsContent'); ucsContent.style.maxWidth='875px'; let design_img=document.querySelector('#design .skinThum img'); let img_src=design_img.getAttribute('src'); if(img_src.includes('pf_cssedit')){ // CSS編集用デザインの環境の場合はアラート表示 alert( " 🔴 現在のブログは「CSS編集用デザイン」を適用しています\n\n"+ " スキン変更を行うと 現在のページをデザインする「ユーザーCSS」を失い\n"+ " 再び元のデザインに戻す事ができなくなります。\n"+ " これを防ぐために、スキンを変更する前に「ユーザーCSS」をバックアップ\n"+ " する事を強くお勧めします。 バックアップは「CSS編集画面」を開いて\n"+ " 「編集枠」の全内容をメモ帳等にコピーして保存するだけです。"); }} function editcss(){ let blog_sw= '<input id="blog" type="submit" value="ブログ画面">'+ '<style>'+ '.textarea1 { font-size: 16px; } '+ '.actionControl { padding-bottom: 30px; } '+ 'input[name="save_mode"], #blog { font: normal 16px Meiryo; width: 150px; '+ 'padding: 3px 8px 1px; color: #fff; cursor: pointer; -moz-appearance: none; } '+ 'input[name="save_mode"] { box-shadow: inset 0 0 0 40px #00a08e; } '+ '#blog { margin-left: 30px; box-shadow: inset 0 0 0 40px #2196f3; }'+ '</style>'; let actionControl=document.querySelector('.actionControl'); if(!document.querySelector('#blog') && actionControl){ actionControl.insertAdjacentHTML('beforeend', blog_sw); } let blog=document.querySelector('#blog'); let my_blog=document.querySelector('#ucsSubMenu li:last-child a'); blog.onclick=function(){ my_blog.click(); } let btnPrimary=document.querySelector('input[name="save_mode"]'); btnPrimary.classList.remove('btnPrimary'); let query=location.href.toString().slice(-3); // 自動処理でCSS編集を開いた場合 if(query=='?sc'){ let css_text=document.querySelector('#contentsForm textarea'); css_text.select(); } // コードを全選択にする } // editcss() function set_newskin(){ let query=location.href.toString().slice(-3); // 自動処理で開いた場合 if(query=='&sc'){ let apply=document.querySelector('#sbmtBtn input[name="applyBtn"]'); setTimeout(()=>{ if(apply){ apply.click(); } }, 40); }} function complete(){ let cssCustom=document.querySelector('.cssCustomBtn'); let link_Blg=document.querySelector('.pubBlogBtn a'); let link_Cus=document.querySelector('.cssCustomBtn a'); if(cssCustom){ link_Cus.setAttribute('href', 'https://blog.ameba.jp/ucs/editcss/srvcssupdateinput.do?sc'); setTimeout(()=>{ link_Cus.click(); }, 40); } else{ link_Blg.removeAttribute('target'); setTimeout(()=>{ link_Blg.click(); }, 40); }}
〔追記〕2023.12.13
アメブロヘッダーの Class名変更により、このツールのユーザー名の取得対象を修正しました。 上記は修正済で ver. 0.7 を ver. 0.8 に変更しています。
「Skin Coordinate 移植ツール」最新版について
旧いバージョンの JavaScriptツールは、アメーバのページ構成の変更で動作しない場合があり、導入する場合は最新バージョンをお勧めします。
●「Skin Coordinate 移植ツール」の最新バージョンへのリンクは、以下のページのリンクリストから探せます。