「Body Wcon OD」とは

スマホで参照した場合に、ブログの本文幅が狭くなった状態で表示されます。 PCで編集して投稿しているブログが、スマホユーザーにはどう見えているかは、ある程度チェックが必要です。

 

「Body Wcon OD」はこのチェックを簡単に行うツールです。 編集画面の「プレビュー」機能の「スマホ表示」は同等の機能ですが、本文のチェックは投稿後の実際のブログ画面で行う事が多く、このツールの方が便利です。

 

で、「Body Wcon OD」は「プレビュー/スマホ表示」に似せたデザインにして来ましたが、実際には「タイトル部」はどちらでも良く、肝心なのは「ブログ本文」の幅変化という事が、これまでの使用ではっきりしました。

 

この点でコードを見なおすと、「プレビュー/スマホ表示」に似せる目的で無駄な操作が多く、単純に「本文幅」のみをテスト的に変化させるなら、もっと良いコードになる事に気付きました。

 

編集画面では、本文幅をテスト的に変更する「Body Wcon」という補助ツールを使っていますが、これは簡単で便利です。

 

 

これと同じ事をブログ画面で行うツールなので、ツール名を「Body Wcon OD」としています。(ODは「Outdoor」の略) 名前から近い機能と判り易いので、揃えました。

 

 

 

いつくかの更新点 

 

全タイプのスキンに対応 

「プレビュー/スマホ表示」に似せるために、幅調節をする要素をスキンごとに変更していたのですが、本文幅の調節は「#entryBody」という、全スキン共通の要素を幅調節する事で済みます。 これで、「全タイプスキン」対応が完全になりました。

 

 

スライダーの全開で本来の幅で表示 

ブログページを開いた時にデフォルトの本文幅を取得し、この値を使ってスライダーを「全開」にした時に、本来のページデザインになる様にしました。

 

 

スライダーのステップ値 

スライダーの調整は、これまで「5px」のステップで調整する仕様でしたが、「1px」のステップに変更しました。

 

 

一部のスキンは、本文幅が5で割れない端数のものがあります。 スライダー全開時にその様なスキンにも対応するために、端数を選択できる必要がありました。

 

 

記事タイトル の表示

多くの記事で使っているパーツの行間隔に誤りがあり、行が折り返されないと気付き難いものでした。 そのパーツを調べると数十の記事で使っていたので、記事ごとに本文幅を狭めたチェックが必要でした。

 

で、前バージョンの「Smart Image」を何度も使ったのですが、その際に記事の区別がつかなくて困りました。 同じパーツが複数記事にあり、チェック時に記事のタイトル等が見えないと、どの記事をチェックしているか判らなくなるのです。

 

この経験から、「記事タイトル」を「スライダー」のパネルに表示して、現在のテスト中の記事の判別ができる様にしました。

 

 

 

 

「Body Wcon OD」の扱い方

 

ツールは一応は常駐型 

使う頻度によって「常駐型」で使うか「非常駐型」として使うか、選択できます。 

 

▪ショートカットを他の機能で使いたい場合は、必要時だけ「Tampermonkey」のダッシュボードで「Body Wcon OD」を「ON」にします。(非常駐型)

 

▪「Ctrl+F7」のショートカットを他で使わないのなら、常に「Body Wcon OD」を「ON」にして常駐型で使用してください。

 

 

操作は ショートカット「Ctrl+F7」のみ 

このツールは、ショートカットを覚えているだけで使えます。

 

● ブログページを表示中に「Ctrl+F7」を押すと、本文幅がスライダーで調節できる様になります。

 

▪スライダーを全開(右端)にすると、本来の表示幅と同じになります。

 

▪スライダーを全閉(左端)にした時の最小幅は「280px」です。

 

 

▪スライダーはマウスでドラッグするか、「⇦」「⇨」キーで操作できます。

 

▪「指定値」は現在のスライダーの指定値を示す表示枠で、操作はできません。

 

▪最後にスライダーで指定した値は記憶され、次回に再現します。

 

● スライダーのパネルは「Ctrl+F7」を押すと非表示になります。

 

 

 

「Body Wcon OD」を利用するには

このツールは Chrome / Edge / Firefox版の拡張機能「Tampermonkey」上で動作します。 以下に、このツールの導入手順を簡単に説明します。

 

❶「Tampermonkey」を導入します

◎ 使用しているブラウザに拡張機能「Tampermonkey」を導入する事が必要です。

既に「Tampermonkey」を導入している場合は、この手順 ❶ は不要です。 

拡張機能の導入については、以下のページに簡単な説明があるので参照ください。

 

 

❷「Tampermonkey」にスクリプトを登録します

◎「Tampermonkey」の「」マークの「新規スクリプト」タブを開きます。

 

 

 

◎「新規スクリプト」には、最初からテンプレートが記入されています。 これは全て削除して、完全に空白の編集枠に 下のコードをコピー&ペーストします。

 

〔コピー方法〕 軽量シンプルなツール「PreBox Button   」を使うと

  コード枠内を「Ctrl+左Click」➔「Copy code 」を「左Click」

  の操作で、掲載コードのコピーが可能になります。

 

◎ 最後に「ファイル」メニューの「保存」を押すと、ツールが使用可能になります。

 

 

〔 Body Wcon OD 〕 ver. 0.5

 

// ==UserScript==
// @name         Body Wcon OD
// @namespace    http://tampermonkey.net/
// @version      0.5
// @description  ブログページでスマホ表示を確認 ショートカット: Ctrl+F7
// @author       Ameba Blog User
// @match        https://ameblo.jp/*
// @exclude      https://ameblo.jp/*/image*
// @noframes
// @icon         https://www.google.com/s2/favicons?sz=64&domain=ameblo.jp
// @grant        none
// ==/UserScript==


document.addEventListener("keydown", check_key);
function check_key(event){
    if(event.keyCode==118 && event.ctrlKey){ // Ctrl + F7
        event.preventDefault();
        if(document.querySelector('#SH_con')){
            document.querySelector('#SH_con').remove(); }
        else{
            main(); }}} // check_key



function main(){
    let org_w; // デフォルトの本文幅
    org_w=document.querySelector('#entryBody').getBoundingClientRect().width;

    let mw=localStorage.getItem('SmartH_I'); // ブログ本文 幅値 🔵
    if(!mw){
        mw=360; }

    if(mw>org_w){
        mw=org_w;
        localStorage.setItem('SmartH_I', mw); } // ブログ本文 幅値をセット 🔵

    let control=
        '<div id="SH_con">'+
        '<div id="page_title"> </div>'+
        '<div id="SH_container">'+
        'ブログ本文幅 <span id="SH_disp"></span> '+
        '<input id="SH_set" type="range" min="280" max="'+ org_w + '" value="360">'+
        '<style>'+
        '#SH_con { position: fixed; top: 0; z-index: 4000; width: 100%; '+
        'display: flex; justify-content: space-between; align-items: center; '+
        'padding: 2px 0; font: 16px Meiryo; color: #000; background: #fff; '+
        'border: 1px solid #aaa; box-shadow: 0 8px 16px #00000040; }'+
        '#page_title { padding: 7px 20px 4px; '+
        'font: normal 21px/26px Meiryo; background: #607d8b12; '+
        'text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3); } '+
        '#SH_container { margin: 0 20px; flex-shrink: 0; } '+

        '#SH_disp { display: inline-block; width: 72px; padding: 2px 0 0; '+
        'text-align: center; border: 1px solid #aaa; }'+
        '#SH_set { width: 200px; vertical-align: -2px; }'+
        '</style>'+
        '<style id="SH_style"></style>'+
        '</div>';

    if(!document.querySelector('#SH_con')){
        document.body.insertAdjacentHTML('beforeend', control); }



    let SH_disp=document.querySelector('#SH_disp');
    SH_disp.textContent=mw+'px';

    let SH_set=document.querySelector('#SH_set');
    SH_set.value=mw;

    let SH_style=document.querySelector('#SH_style');
    SH_style.textContent=
        '#entryBody { margin-left: auto; margin-right: auto; width: '+ mw +'px; }';


    SH_set.addEventListener('input', function(){
        mw=SH_set.value;
        SH_disp.textContent=mw+'px';
        SH_style.textContent=
            '#entryBody { margin-left: auto; margin-right: auto; width: '+ mw +'px; }';

        localStorage.setItem('SmartH_I', mw); }); // ブログ本文 幅値をセット 🔵



    let target=document.head;
    let monitor=new MutationObserver(catch_title);
    monitor.observe(target, { childList: true });

    catch_title();

    function catch_title(){
        let title_h; // タイトル部
        let title_text; // 記事タイトル
        let article=document.querySelector('.js-entryWrapper'); //記事全体
        if(article){
            if(article.querySelector('h1')){
                title_h=article.querySelector('h1');
                title_text=title_h.textContent; }
            else if(article.querySelector('h2')){
                title_h=article.querySelector('h2');
                title_text=title_h.textContent; }
            else if(article.querySelector('h3')){
                title_h=article.querySelector('h3');
                title_text=title_h.textContent; }}

        let page_title=document.querySelector('#page_title');
        if(title_text && page_title){
            page_title.textContent=title_text; }

    } // catch_title()

} // main()

 

 

 

「Body Wcon OD」最新版について 

旧いバージョンの JavaScriptツールは、アメーバのページ構成の変更で動作しない場合があり、導入する場合は最新バージョンをお勧めします。

 

●「Body Wcon OD」の最新バージョンへのリンクは、以下のページのリンクリストから探せます。