質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Electron

Electronは、HTML5とNode.jsというWebの技術を用いてデスクトップアプリケーションを作成できるクロスプラットフォームな実行環境です。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

3414閲覧

contenteditable属性をつけたdiv内のテキストをドラッグ禁止にしたい

退会済みユーザー

退会済みユーザー

総合スコア0

Electron

Electronは、HTML5とNode.jsというWebの技術を用いてデスクトップアプリケーションを作成できるクロスプラットフォームな実行環境です。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2016/11/23 13:08

編集2016/11/23 23:42

###問題
contenteditable属性をつけたdiv内のテキストをドラッグ禁止にしたいです。
下記のコードのようにcssでドラッグ不可にできそうな事をしていますが、効きません。

###どのような状態にしたいか
atomテキストエディタのような挙動にしたいのです。atomはドラッグできません。
動画を貼りました

html

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4<meta charset="utf-8"> 5<script type="text/javascript" src="jquery-3.1.1.min.js"></script> 6<style> 7#box{ 8 user-select:none; 9 -webkit-user-select:none; 10 -webkit-user-drag:none; 11 -khtml-user-drag:none; 12 border-style:solid; 13 width:500px; 14 height:800px; 15} 16</style> 17</head> 18<body> 19 <div id="box" contenteditable="true"> 20 ドラッグ禁止になりません 21 </div> 22</body> 23</html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Takamoso

2016/11/23 14:43

contenteditable属性をつけて編集できるようにしているのにドラッグ禁止にしたいとはどういうことですか?ドラッグ禁止にしたらテキストの編集ができなくなります。具体的にお願いします。
guest

回答2

0

ベストアンサー

html

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4<meta charset="utf-8"> 5<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 6<script> 7$(function() 8{ 9 10// クリックボタンを押した直後 11$('#box').on('mousedown', function(event) 12{ 13 // getSelectionに対応していなければ関数を抜ける 14 // Electronなら最新のChromeなので問題なし 15 if (!window.getSelection) return; 16 17 // テキストがドラッグで選択されているとき 18 // 動画のようにテキストの下に青色の背景色が表示されているとき 19 if (window.getSelection().rangeCount) 20 { 21 // テキスト選択部分の座標や幅情報が入っている 22 var selection = window.getSelection().getRangeAt(0).getBoundingClientRect(); 23 24 //console.log('上:' + selection.top + ', 左:' + selection.left); 25 //console.log('マウス上下:' + event.pageY + ', マウス左右:' + event.pageX); 26 //console.log('下:' + (selection.top + selection.height) + ', 右:' + (selection.left + selection.width)); 27 28 // マウスのクリック位置が青色のテキスト選択エリア内にあるとき 29 if (selection.top <= event.pageY && event.pageY <= selection.top + selection.height 30 && selection.left <= event.pageX && event.pageX <= selection.left + selection.width) 31 { 32 // 選択を解除する 33 window.getSelection().removeAllRanges(); 34 } 35 } 36}); 37 38}); 39</script> 40<style> 41#box 42{ 43 border-style: solid; 44 width: 500px; 45 height: 800px; 46} 47</style> 48</head> 49<body> 50 <div id="box" contenteditable="true"> 51 ドラッグ禁止になりません 52 </div> 53</body> 54</html>

これでどうですか?もしかしたら想定していないバグがあるかもしれません。

もっと単純に以下でもいいかもです。

javascript

1$('#box').on('mousedown', function() 2{ 3 if (!window.getSelection) return; 4 5 if (window.getSelection().rangeCount) 6 { 7 window.getSelection().removeAllRanges(); 8 } 9});

投稿2016/11/24 01:10

編集2016/11/24 03:53
Takamoso

総合スコア248

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

編集可能にするのだから、boolean値をfalseにする必要があるのでは?

HTML

1<div id="box" contenteditable="false"> 2 ドラッグ禁止になりません 3</div>

投稿2016/11/23 13:55

naomi3

総合スコア1105

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問