IE8でdivのcontenteditable=trueでの擬似テキストボックス内から、
キャレット位置を取得しようとして、
Eclipse3.5上から、以下のJavaScript文を入力していたところ、
var elem = document.getElementById("chaTitleName2");
elem.focus();
var range = document.selection.createRange();
「関数 createRange() は未定義です」というエラーが出ます。
このエラーを解消する方法を、ご存知の方がいらっしゃいましたら、
ぜひ教えてください。
(もしくは、他の方法で、
IE8でdivのcontenteditable=trueでの擬似テキストボックス内から、
キャレット位置を取得する方法をご存知の方がいらっしゃいましたら、
ぜひ教えてください)
お世話になります。
宜しくお願い致します。
No.4ベストアンサー
- 回答日時:
Eclipseはあまり詳しくありませんが、
少なくとも私のEclipse3.5で先のNo2のコードでエラーは出ません。
スクリプト・エクスプローラーで、javascriptプロジェクトの
JavaScriptリソースに
ECMAScriptビルトイン・ライブラリー と
ECMA 3 ブラウザー・サポート・ライブラリー
は表示されてますか?
プロジェクトを作る時に
□ECMA3ブラウザーライブラリーのインクルード
にチェックしましたか?
この回答への補足
「yyr446」様
アドバイスを多数ご回答いただきまして、
本当にありがとうございます。
本日(20100816(月))から通常勤務に戻りましたので、
さっそく開発環境内を確認したところ、
Eclipse3.5のプロジェクトエクスプローラ内の、
「JavaScript Resources」フォルダ以下に、
「ECMA 3 ブラウザー・サポート・ライブラリー」は表示されていました。
それと、
「ECMAScriptビルトイン・ライブラリー」につきましては、
「ECMAScript Built-In Library」として表示されては
おりましたが、中を見たところ、
Rangeという文字列が存在しているクラスとメソッドは、
ともに、「RangeError」しか表示されておりませんでした。
もしかすると、この
「ECMAScript Built-In Library」というのが古くて、
必要なクラスやメソッドが入っていないのが、
今回の問題点なのでしょうか?
もしそうでしたら、このライブラリを
最新版に更新する方法などがございましたら、
ぜひ教えてください。
それと、
「プロジェクトを作る時に
□ECMA3ブラウザーライブラリーのインクルード
にチェックしましたか?」
につきましては、前任者が数年前にプロジェクトを作ったものを
引き継いでおりましたので、
私の方では、この点につきましては不明という状態です。
以上になります。
宜しくお願い致します。
hiroasa21。
残念ながら、この問題につきましては解決出来なかった為、
今後、何か別の手段を検討することに致しました。
いろいろとアドバイスをありがとうございました。
No.3
- 回答日時:
もしや
「「関数 createRange() は未定義です」というエラーが出ます。
このエラーを解消する方法」
って、Galileo(Eclipse)のIDEの中で、エラーが出るのを防ぐってことかしら?
この回答への補足
「yyr446」様へ
お世話になります。
何が原因かは不明ですが、Eclipse3.5上で、
「「関数 createRange() は未定義です」というエラー
が出ていて、その先の開発作業へ進めない状況の為、
「エラーが出ないように改善したい」という意味でした。
わかりずらい表現ですみませんでした。
このエラーを解消するにあたって、
何かお心当たりの点などございましたら、
ぜひアドバイス願います。
宜しくお願い致します。
hiroasa21。
残念ながら、この問題につきましては解決出来なかった為、
今後、何か別の手段を検討することに致しました。
いろいろとアドバイスをありがとうございました。
No.2
- 回答日時:
こおいうので、どうですか
IEでもIE以外でもいけそうですが...
(全角空白は半角空白にしてね)
<div id='chatitlename2' contenteditable=true>ああああいいいいうううう</div>
<button onclick="getcaret();" >ボタン</button>
<script type="text/javascript">
function getcaret() {
var elem = document.getElementById("chatitlename2");
elem.focus();
var range,start_point,end_point;
if('undefined' !== typeof document.selection){
range = document.selection.createRange();
var stored_range = range.duplicate();
stored_range.moveToElementText(elem);
stored_range.setEndPoint('EndToEnd',range);
elem.selectionStart = stored_range.text.length - range.text.length;
elem.selectionEnd = elem.selectionStart + range.text.length;;
start_point = elem.selectionStart;
end_point = elem.selectionEnd;
}else{
var selection = window.getSelection();
range = document.createRange();
range.setStart(elem.firstChild,selection.anchorOffset);
range.setEnd(elem.firstChild,selection.focusOffset);
start_point = range.startOffset;
end_point = range.endOffset;
}
alert('開始位置' + start_point);
alert('終了位置' + end_point);
}
</script>
この回答への補足
「yyr446」様、ご回答ありがとうございます。
さっそく試したいところなのですが、
ちょうど明日(2010年8月12日(木))から
会社が夏季休暇に入ってしまって開発環境に
アクセス出来ない状況の為、
来週出勤してから、さっそく試してみます。
それまで、しばらくレスポンスをお待ちいただけ
ればと存じます。
私はJavaScriptやHTML5の初心者なので、
よく存じないのですが、
range = document.selection.createRange();
を、Eclipse3.5上で手入力した段階で、
「createRange()関数が未定義です」エラーが出てしまい、
その先へ進めない状況です。
来週、私が試した後にでも、もしよろしかったら、
何かお心当たりの点などございましたら、
ぜひアドバイス願います。
よろしくお願い致します。
hiroasa21。
残念ながら、この問題につきましては解決出来なかった為、
今後、何か別の手段を検討することに致しました。
いろいろとアドバイスをありがとうございました。
No.1
- 回答日時:
自分の環境もIE8ですがエラーにならずにちゃんと動きました。
<html>
<head>
<script type="text/javascript">
function test() {
var elem = document.getElementById("chatitlename2");
elem.focus();
var range = document.selection.createRange();
alert(range);
}
</script>
</head>
<body>
<div id='chatitlename2' contenteditable=true>
</div>
<button onclick="test();" >ボタン</button>
</body>
その他の環境の違いによる影響なのでしょうか。
ちなみの当方の環境は
IE:8.0.6001.18702
OS:WindowsXP Professional SP3
です。
この回答への補足
「yamada_g」様、ご回答ありがとうございます。
参考までに、私の環境(IE8、WindowsXP Professional SP3)も下記致します。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" errorPage="../error/FormSystemError.jsp" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>xxシステム</title>
<link rel="stylesheet" type="text/css" href="./style.css">
<script language="JavaScript">
<!--
上記のような環境になっております。
もし、何かお気づきの点などございましたら、
ぜひアドバイス願います。
宜しくお願い致します。
hiroasa21。
残念ながら、この件につきましては解決致しませんでしたので、
別の技術に仕様を変更することに致しました。
いろいろとアドバイスをいただきまして、
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ActiveXobjectが作成できない
-
javascriptで編集可能不可能の...
-
モーダルダイアログウィンドウ...
-
<a>タグのテキストを取得
-
javascriptでCSVを呼出しvlookup
-
ボタン上でマウスを押している...
-
javascriptであるボタンを押す...
-
onclickは良くないのですか
-
JavaScriptとHTMLの課題です
-
同じIDで定義した要素の配列を...
-
JavaScriptで文字列の特定文字...
-
confirmの連続?
-
javaScript textareaの一行あた...
-
Google Apps Script で添付ファ...
-
html javascript リンク先アド...
-
JavaScriptで簡単なクイズを作...
-
配列を作って総当たりで距離を...
-
TexでΣの添え字の位置直し
-
C#テキストボックスの文字を配...
-
javascriptでテーブルに追加し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ActiveXobjectが作成できない
-
<a>タグのテキストを取得
-
任意の座標をクリックさせるには
-
onchangeイベントを使ってspan...
-
javascript 特定のタグのidの存...
-
モーダルダイアログウィンドウ...
-
【Tabキー】特定の範囲内だけで...
-
画像の一部を表示
-
画像上のクリックした場所が分...
-
ownerDocumentの使い方を知りた...
-
innerHTML実行後のイベント
-
HTML:Tableタグに対し、JavaScr...
-
「nullまたはオブジェクトでは...
-
アンカータグをクリックして色...
-
日本語入力の禁止
-
配列の大括弧と丸括弧はどう違う?
-
div要素内の全input要素をdisable
-
指定要素のクリック位置を取得...
-
javascriptであるボタンを押す...
-
Click回数を数え、規定された回...
おすすめ情報