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で質問しましょう!
似たような質問が見つかりました
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- Visual Basic(VBA) Selenium Basicの件 5 2023/04/10 20:55
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript GoogleChart 階層ごとのブロックの長さを個別に設定したい 1 2022/07/06 14:27
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- JavaScript プログラムがうまく動きませんレビューお願いします 1 2022/07/10 05:08
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- その他(プログラミング・Web制作) pythonでのカーソル移動がずれる 2 2023/07/30 08:51
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<a>タグのテキストを取得
-
innerHTML実行後のイベント
-
指定要素のクリック位置を取得...
-
RadioButtonListの表示制御
-
ActiveXobjectが作成できない
-
任意の座標をクリックさせるには
-
画像上のクリックした場所が分...
-
onchangeイベントを使ってspan...
-
div要素内の全input要素をdisable
-
[javascript]DOCTYPE宣言対応に...
-
javascriptであるボタンを押す...
-
javascriptで編集可能不可能の...
-
【Tabキー】特定の範囲内だけで...
-
Click回数を数え、規定された回...
-
同じIDで定義した要素の配列を...
-
idを使わずにonclickで自身の要...
-
functionから別のfunctionを実...
-
C#OpenCv V4にのエラーに関する...
-
C#で、ContextMenuStripに動的...
-
C#テキストボックスの文字を配...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<a>タグのテキストを取得
-
ActiveXobjectが作成できない
-
innerHTML実行後のイベント
-
任意の座標をクリックさせるには
-
javascript 特定のタグのidの存...
-
onchangeイベントを使ってspan...
-
HTML:Tableタグに対し、JavaScr...
-
モーダルダイアログウィンドウ...
-
日本語入力の禁止
-
javascriptでCSVを呼出しvlookup
-
画像上のクリックした場所が分...
-
Click回数を数え、規定された回...
-
【Tabキー】特定の範囲内だけで...
-
配列の大括弧と丸括弧はどう違う?
-
重複しないくじの作り方がわか...
-
javascriptで、表示されている...
-
div要素内の全input要素をdisable
-
javascriptであるボタンを押す...
-
javascriptで自動計算フォーム...
-
RadioButtonListの表示制御
おすすめ情報