Wordpressで、投稿画面(記事を作成する画面)で、例えばテキストなんかを貼り付けたりすると、その瞬間に画面上部に移動(ctrl+Homeみたいな挙動)が起こるのが不便でなりません。なんとか解消する方法がないか質問致します。どうぞよろしくお願い致します。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2012/07/08 08:30:11
  • 終了:2012/07/09 19:44:53

回答(1件)

id:Cherenkov No.1

Cherenkov回答回数1503ベストアンサー獲得回数4932012/07/08 12:13:35

ポイント100pt

ブラウザの種類とバージョン、WPのバージョンはなんでしょうか。

追記:
textareaのキャレット(入力受付を示す点滅する棒)が画面に表示されていない状態でペーストを行うと、いい感じに自動スクロールしてくれるおもてなし機能がブラウザにあるようです。
これを無効化するために、pasteイベントを監視して、その時のスクロール位置を保存、自動スクロールが終わった頃に元の位置へスクロールするuserscriptを書いてみました。
以下をコピペしてhateq.user.js等のファイル名(必ず.user.jsで終わるよう)にし、文字コードutf-8で保存。作成したファイルをchromeにドラッグアンドドロップしてインストール。
@includeの部分は動作させたいページのURLを適宜変更してください。複数指定する場合は@includeの行を増やすだけです。
アンインストールは通常の拡張と同じ手順。

// ==UserScript==
// @name           WordPress tinyMCE disable auto scroll
// @namespace      http://d.hatena.ne.jp/Cherenkov/
// @include        http://localhost/wordpress/wp-admin/*
// ==/UserScript==

setTimeout(function() {
  if (document.querySelector('.mceIframeContainer')) {
    var tinymce = document.querySelector('.mceIframeContainer #content_ifr').contentDocument.getElementById('tinymce');
    tinymce.addEventListener('paste', function() {
      var x = window.scrollX;
      var y = window.scrollY;
      setTimeout(function() {
        scrollTo(x, y);
      }, 0); //firefoxは2くらい
    }, false);
  }
}, 500);

pasteイベント後のsetTimeoutの時間を0msにしてもスクロールする際に一瞬ちらつきますが、これはどうしようもなさそうです。

他6件のコメントを見る
id:Cherenkov

http://jsfiddle.net/7L72D/ で再現でき、以下のように対策したら成果がでたのでUserScriptでの解決を図ってみました。回答1を追記したのでご確認ください。
http://jsfiddle.net/7L72D/2/

2012/07/08 23:51:04
id:miku1973

>> ツールボタンが見えている状態では発生しませんね。

ホントですねぇ。「投稿入力欄の大きさ」を500にしていたのですが、50にして画面内に収まるようにしました。不便ですがこれでやりくりしてみます!ありがとうございました!

2012/07/09 19:44:31

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません