JSPでの画面でのドラッグ&ドロップ制限方法

このQ&Aのポイント
  • JSPでWebシステムを開発している際に、画面上のドラッグ&ドロップを制限する方法について調査しています。
  • 「ドラッグ&ドロップ 禁止 html」のキーワードで検索すると、<body ondragover="return false">という記述で制限できるようですが、JSP内のbodyタグにこの属性を付けるとエラーが発生し制限できません。
  • JSP内でドラッグ&ドロップを制限する方法があるのか調査しています。
回答を見る
  • ベストアンサー

JSPの画面でドラッグ&ドロップを禁止したい

java1.5 jsp2.0 eclipse3.3 IE7 でWebシステムを開発しています。 画面上にhtmlファイルをドラッグ&ドロップ(以下D&D)することを禁止させたく、 JavaScriptによる制限をしようとしています。 同件があるかどうか「ドラッグ&ドロップ 禁止 html」のキーワードで検索したところ、 <body ondragover="return false"> これで制限できるような記述があり、 とりあえずHTMLで作成してD&Dをうまく制限できました。 が、JSP内のbodyタグにondragoverを記述したところ eclipseが「Warning: unknown attribute "ondragover"」と返し、 D&Dしても制限することができませんでした。 JSP内でD&D制限することは可能なのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.2

JSPというより、ブラウザーのイベント仕様とjavascriptのハンドラーの問題 だと思います。  IEでは、onDragDropイベントのハンドラーでfalseを返せば、ドラッグ&ドロップ が禁止されます。onDragDropはIE独自のもので他のブラウザーにはありません。  一方、ondragoverイベントは、javascriptによるドラッグ&ドロップを制御する APIに使うイベントで、サポートしているブラウザーは多いです。でも意味が違い ます。ondragoverのイベントハンドラーでfalseを返せば、そこ(イベントターゲット) にドロップを許可するという意味になります。 https://developer.mozilla.org/ja/DragDrop/Drag_and_Drop -------------------------------- eclipseが「Warning: unknown attribute "ondragover"」と返し、 この手のWarning:は無視するしかないです。 お使いのEclipseのバージョンが解りませんが、 3.5(Galileo)のjavascript IDEでは 「ECMAScriptビルトイン・ライブラリー」(ECMA3) 「ECMA 3 ブラウザー・サポート・ライブラリー」 しかなく、 ondragxxとか、contenteditableとか、designModeとかの新しい属性 は「Warning: が出ます。 もしかしたら、対処法はあるのかも知れませんが...

superss28
質問者

お礼

さらに調べてみたのですが、 このD&Dのスクリプトを入れても タイトルバーとかにD&DしてしまうとIEの仕様上、結局制限できないんですね。。。 eclipseは3.3を使用していますが、3.5でもワーニングがでるんですね。 とりあえずeclipseの定義にないだけで動作としては問題ないようでしたので 気にしないことにしました。 ご回答ありがとうございました。

その他の回答 (1)

  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.1

JSPで書こうとブラウザに表示されるのはただのHTMLです。 eclipseのWarningは、ただondragover属性が eclipse内の定義にないだけだと思うので気にしなくてもいいのではないかと思います。 制限できなかったというJSPを表示したときのHTMLソースと うまく制限できたというHTMLソースに何か違いがあるのではないでしょうか。

superss28
質問者

お礼

>うまく制限できたというHTMLソースに何か違いがあるのではないでしょうか。 もうひとつ別のJSPを作成したところ、ワーニングはでるけど制限はできました。 余計な記述をしてる気がしてきました。見直してみます。 ご回答ありがとうございました。

関連するQ&A

  • ドラッグ&ドロップ禁止について

    JavaScript初心者です。 IEへファイルのドラッグ&ドロップを禁止したいのですが、 うまくいきません。テキストや画像ファイルを、IEに ドラッグ&ドロップすると表示されてしまいます。 何方か御存知の方、教えていただけないでしょうか? よろしくお願いいたします。 環境:W2K、IE6SP1、JDK1.3 です。 ソースは以下のとおりです。 -- ソース -------------------- <HTML> <SCRIPT Language="JavaScript"> <!-- window.ondragdrop = false; // --> </SCRIPT> <BODY> ドラッグ&ドロップ禁止 </BODY> </HTML> -----------------------------

  • ドラッグ&ドロップ(D&D)を制限しています。

    ondragoverを使用して、ドラッグ&ドロップ(D&D)を制限しています。 ブラウザはIE7です。 bodyタグにondragover="return false"を実装して D&Dを制限しているのですが、 HTML画面の全箇所ではなく、部分的にD&Dが制限できていません。 HTMLには<div id ="test">のようにスタイルシートを参照している部分があります。 スタイルシートに記述してしまうとD&Dが制限できなくなるような プロパティはあるのでしょうか?

  • eclipseでのJSPのエディタ

    eclipse + tomcatでjspの勉強を始めたばかりの者です。 eclipse3.4をダウンロードして、 jspを作成するところまではできたのですが、 asp.netのvisual studioのように、jspのデザインビュー? のような機能はeclipseにはないのでしょうか? (できれば、ドラッグ&ドロップでタグを貼り付けれるとうれしいんですが) 宜しくお願い致します。

    • ベストアンサー
    • Java
  • jQueryでシンプルドラッグドロップがまずい

    Javascript,jQuery初心者です。主にWINDOWS7、GoogleChrome使用です。 jQueryでシンプルなドラッグドロップ自作をやってみました。 <!DOCTYPE html> <html> <head> <meta carset="utf-8"> <script src="js/jquery-1.11.0.min.js"></script> <style> #chr{ position:absolute; left:100px; top:100px; } </style> <body> <div id="msg"></div> <div id="chr"> <img src="parts/usl470.jpg"> </div> <script> dragflg=false; $("#chr").mousedown(function(){ dragflg=true; $("#msg").html("on")}) .mouseup(function(){ dragflg=false; $("#msg").html("up")}); $(window).mousemove(function(e){ if(dragflg) { $("#chr").css("left",e.clientX-20+"px") .css("top",e.clientY-20+"px"); } }); </script> </body> </head> </html> mousedown、mouseupの検出を確認するために、隅にon、upと表示するようにしてあります。 思惑通り、押すとon、離すとupが表示されますが、ドラッグドロップした後は、離している状態のupになってくれず、押さずに動かしても#chrはついてきてしまいます。まともなドラッグドロップと違い、もう1回クリックでやっと離してくれる、という具合です。  #chr上でボタンを離している時はそれを検出するんじゃないのか?と思ってしまうのですが、ついでに、ドラッグ動作自体も、移動禁止マークが出てちょっとおかしいし、詳しい人はどうやってこういう症状を回避してドラッグドロップの動作を実現しているのでしょうか?  ネットで見て回って参考にしようにも、短くてシンプルなjQueryのドラッグドロップのサンプルが見つからず、ここで何が間違いなのか意見を仰ごうと思ったものです。手っ取り早くjQueryUIを導入すれば、やりたいこと自体は出来るんでしょうけど、ボタン離していても検出できないのが何なのかは、すっきりしておきたいと思いました。どうかよろしくお願いします。

  • VBのようにドラッグ&ドロップで画面を作りたい

    Javaで画面開発をしたいのですが、 VBのようにコントロールをドラッグ&ドロップしてボタンやドロップダウンリストボックスの配置をすることはできないのでしょうか? Swingでレイアウトマネージャー使う方法だと実行時にしか確認できず不満です。 「(1)クラサバ用のアプリを作る場合」のコントロールの配置位置 「(2)WEBアプリを作る場合」(JSPなどの、HTMLタグのコントロールの配置位置 をEclipse上でリアルタイムで確認したいです。 /**************************************/ ※実行時にこそ、インスタンス化される以上、不可能でしょうか? レイアウト保持用(各コントロールの位置)のファイルをstatic、finalizeで宣言すれば、 実現可能? ⇒ 誰かがツールを作ってる?と思っています。

    • ベストアンサー
    • Java
  • サーブレット/jspについて

    これまでVB系の開発を主に行っておりましたが、javaを学ぶこととなり、Eclipse3.4でwebアプリケーションの開発ができるレベルに達する事を目標に学習を行っております。「明解Java 入門編」という書籍を読んでjavaの記述の仕方を少し学びました。 次のステップとしてサーブレット/JSPを学びたいと考えているのですが、何かお勧めの書籍があればご紹介していただけないでしょうか? amazonにて一通り拝見したのですが、評価の高い書籍はどれも数年前の発刊だったり、Eclipseの操作の記述が無いのでは?というような不安で選ぶに選べません。 Eclipse3.4の機能を熟知しきれていなくともサーブレット/JSPを学びたいのですが良書があればご紹介いただけないでしょうか? 宜しくお願い致します。

    • ベストアンサー
    • Java
  • jqueryを使い、画像のみドラッグ&ドロップを禁

    現在、画像のみ右クリック禁止しています。 $(function(){ $('img').on('contextmenu',function(e){ return false; }); }); しかし、ドラッグしてデスクトップに保存ができてしまいます。 これを防ぐ記述方法を教えて下さい。

  • JSPでAttribute名をすべて取り出す

    JSPの勉強をしています。 暗黙的オブジェクトsessionのセットされたattributeすべてを格納するメソッド session.getAttributeNames(); ですが、Eclipseでエラーが発生し、困っています。 以下、詳細です。 JSPファイルで、 <% Enumeration list = session.getAttributeNames(); %> と記述すると、eclipseのエラーメッセージで、Enumerationの下に赤い波線が引かれ、フォーカスすると、 「Enumerationを型に解決できません。」と表示されます。 少し工夫をして、 <% Enumeration list; %> だけ記述すると、エラーは生じないので、型Enumerationは定義されているのだと思います。 なお、使っているeclipseは4.5で最新のものです。 JDEは1.8です。 申し訳ありませんが、ご回答のほどよろしくお願いします。

    • ベストアンサー
    • Java
  • EclipseでJSP作成に役立つ最も良いプラグインは何ですか?

    EclipseでJSP作成に役立つプラグインを探しています。 ただし画面をコードを打って作成するのではなく、例えばアイテム(ボタン、テキストボックス等)をドラッグ&ドロップして 直接画面を編集出来るようなエディターのプラグインを探しています。 もしご存知であればどなたか是非教えて下さい。

  • JAVAアプレットでドラッグ&ドロップ

    JAVAは完全な初心者です。 ここ何日かJAVAの本を読み漁ったり、インターネット探したりしているのですが、どうにも難しくて実現できていません。 何をやりたいのかと言いますと、ローカルから画像をサーバに格納したいのですが、その際にブラウザにローカルからドラッグ&ドロップして画像をサーバに格納したいのです。 こんなイメージです。 http://www.radinks.com/upload/ ただ、JAVAアプレットだとローカルからのファイル操作はできなさそうなので、ファイルパスだけ渡してサーバ側でPHPでファイルをアップロードしようと考えております。 HTMLの画面上のボタンを押すとダイアログが出て来て、画像ファイルを選択すると、ローカルのファイルをサーバに格納する所までは出来ました。 Javascript、PHP、HTMLで作ってます。 どのようにして実現させているかと申しますと。 AAA.phtml(抜粋) (1)入力画像というボタンを押下します。 <input name="submit[imageinput]" type="submit" class="button120" onclick="inputImage()" id="submit[imageinput]" value="入力画像" /> (2)押下するとinputImage()が走って function inputImage() {  document.frmContent.userfile.click();  if(document.frmContent.userfile.value != ''){   return;  }else {   document.frmContent.userfile.value = '';   return false;  } } (3)ダイアログボックスが開き、ファイルを選択します。 <input name="userfile" id="userfile" type="file" size="0" /> (4)選択後、submitされてPHP側で、貰ったクライアントのパスからサーバのあるパスにファイルをコピーしています。 そこにドラッグ&ドロップの機能も実装させたい考えなのです。 http://www2s.biglobe.ne.jp/~dat/java/strikes/java.awt.dnd.html ここを参考にさせて貰ったのですが、アプレットにすると動きません。 構想的には、 ローカルからドラックし、HTML画面のJAVAアプレットにドロップします。 すると、ドロップされたファイルパスがファイル選択(userfile)に渡り、 submitされて、PHPでコピーという流れにしたいのです。 何か良い方法は無いでしょうか、初心者なので、サンプルを交えてご教示願えると大変助かります。 初心者なので言ってることが既に間違っているかもしれませんが、その際はご指摘下さい。 宜しくお願い致します。