|
|
|
// ==UserScript== |
|
// @name Qiita round trip button |
|
// @namespace khsk |
|
// @description 最下部へ移動し、戻るボタンを追加 |
|
// @include http://qiita.com/drafts/* |
|
// @version 1 |
|
// @grant none |
|
// ==/UserScript== |
|
|
|
// インターフェース作成 |
|
var i = document.createElement('i') |
|
i.className = 'fa fa-arrow-down' |
|
|
|
var div = document.createElement('div') |
|
div.appendChild(i) |
|
div.style.float = 'left' |
|
div.style.fontSize = '24px' |
|
// 「書き方」のマウスオーバーを拝借 |
|
div.className = 'editorMarkdown_help' |
|
|
|
// document.getElementsByClassName('editorMarkdown_toolBar')[0].appendChild(div) |
|
// ↑では、本文のみ表示時に現れるプレビューボタンより右に出てしまうので、左に出す |
|
var tool_bar = document.getElementsByClassName('editorMarkdown_toolBar')[0] |
|
tool_bar.insertBefore(div, tool_bar.lastChild) |
|
|
|
// イベント登録 |
|
// キャレットはStart,End両方移動しないと選択状態になる |
|
|
|
var body = document.getElementById('draft_item_raw_body') |
|
var original_caret = 0 |
|
// 戻った時に先頭行になってもいいなら不要 |
|
var original_scroll = 0 |
|
|
|
// 移動前のキャレットを保存し、最下部へ移動 |
|
var down_caret = function(e){ |
|
original_caret = body.selectionStart |
|
original_scroll = body.scrollTop |
|
move_caret = body.value.length |
|
body.selectionStart = move_caret |
|
body.selectionEnd = move_caret |
|
i.className = 'fa fa-arrow-up' |
|
div.removeEventListener('click', down_caret) |
|
div.addEventListener('click', up_caret) |
|
body.focus() |
|
} |
|
|
|
// 保存したキャレットへ戻る |
|
var up_caret = function(e) { |
|
body.selectionStart = original_caret |
|
body.selectionEnd = original_caret |
|
body.scrollTop = original_scroll |
|
i.className = 'fa fa-arrow-down' |
|
div.removeEventListener('click', up_caret) |
|
div.addEventListener('click', down_caret) |
|
body.focus() |
|
} |
|
|
|
div.addEventListener('click', down_caret) |
|
|