人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: yoshifuku
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Cherenkov
●100ポイント

ブラウザの種類とバージョン、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にしてもスクロールする際に一瞬ちらつきますが、これはどうしようもなさそうです。


yoshifukuさんのコメント
ブラウザ:グーグルクローム 20.0.1132.47 m WP :3.3.2 です。どうぞよろしくお願い致します。

Cherenkovさんのコメント
新規投稿で適当にスクロールした状態で貼り付けてみましたが再現されませんでした。 具体的に手順を提示してみてください。 (ビジュアル/HTML編集どちらなのか等) プラグインによる影響などはありませんか?

yoshifukuさんのコメント
ビジュアル編集です。 テキスト貼り付けで即上にふっとぶ。HTML編集では発生しない。 プライグインの影響可否は、どのような確認方法がありますか。

Cherenkovさんのコメント
なるほど、こちらでも再現しました。 プラグインをすべて無効にして確認したのでプラグインによる影響はなさそうです。 編集部分はTinyMCEというプラグインが内蔵されていて、Wordpress 3.3.2はTinyMCE 3.4.5のようでした。(wordpress\wp-includes\js\tinymce\tiny_mce.jsの最初のほうのmajorVersion:"3",minorVersion:"4.5"で確認) [https://github.com/tinymce/tinymce/pull/63:title=Pull Request #63: Chrome window scrolling on paste by codemole ? tinymce/tinymce] これかと思ってコードを探してみましたが対策されているようでした。うーん。

rouge_2008さんのコメント
ツールボタンが見えている状態では発生しませんね。 入力欄が1行分くらい隠れていると発生しますが、入力欄にスクロールバーが発生している状態では大丈夫でしたので、あまり気にしなくてもいいのではないでしょうか・・・

Cherenkovさんのコメント
このコメント入力欄をクリックしてキャレットを表示した状態で隠れるまでスクロールして貼り付けを行うと同様にスクロールされたのでchrome自体の機能なんですかね…。

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

yoshifukuさんのコメント
>> ツールボタンが見えている状態では発生しませんね。 ホントですねぇ。「投稿入力欄の大きさ」を500にしていたのですが、50にして画面内に収まるようにしました。不便ですがこれでやりくりしてみます!ありがとうございました!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ