問題タブ [getselection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
11756 参照

javascript - Handsontable - getSelected が機能しない

私はhandsontableを使用していくつかのExcelのようなスプレッドシートを作成しています.gRaphaelを使用してグラフを作成するには、ユーザーが選択したデータを取得する必要があります. しかし、このコードを使用してデータ選択パラメーターを警告しようとすると:

アラート ウィンドウに「未定義」と表示されます。誰かがこのコードを修正する方法を教えてもらえますか?

0 投票する
2 に答える
696 参照

html - HTML テーブルの 1 列を除くすべてを選択

ユーザーがテーブルをExcelにドラッグ/ドロップできるように、アプリケーションでテーブル要素を選択するために次を使用しています。

...そして、すべてが正常に機能しています。私のテーブルの1つが列に画像を持っていることを除いて、この列(またはその列のtd)を選択から削除したいと思います。

「Picture」td を「nosel」クラスに追加し、そのクラスにないテーブル内のすべての td を変数に入れることができました。

次に、現在の選択を削除または空にするコードを省略し、各セルを選択に追加しようとしました。

...しかし、最初の td のみが選択されています。

2つの質問:

  1. これは可能ですか?

  2. addRange よりも優れた方法はありますか? 拡張しようとしましたが、うまくいきませんでした。

要求に応じて、これが私のテーブルの例です。

0 投票する
1 に答える
119 参照

javascript - Javascriptのdblclickイベントでテキストのオフセットを計算する方法

私はラベルを持っていて、それに設定ondblclickしています:

テキスト内の単語をダブルクリックすると、Javascript 関数へのコールバックを取得します。

選択したテキストの文字数を知りたいです。

次のようなものを使用して、選択自体を取得できます。

もちろん、私はテキストノード自体を持っているので、テキスト全体があります。

しかし、選択範囲はテキスト ノードに何度も表示される可能性があります。文字の観点からオフセットを知る必要があります。たとえば、ユーザーが何とかをダブルクリックした場合、それがどれであるかを知りたいです。

イベントで見つけることができるのは、私にはピクセルのように見えるさまざまな X、Y 座標だけですが、2 つのスクロール バー、書式設定などがあるため、ピクセルから文字オフセットを計算することは非常に困難です。

この情報はイベント データのどこかにあるのでしょうか、それとも何らかの形でこれを計算するためのコードはありますか?

どんな助けでも大歓迎です。

0 投票する
1 に答える
250 参照

javascript - getSelection は選択からリンクを削除しますか?

私のウェブサイトでテキストが選択されたときに、次のコードを使用して著作権を追加しています。ユーザーがリンクのある領域を選択した場合、 getSelection() メソッドがリンクを返さないことを除いて、すべてがうまく機能します。プレーンテキストを返すだけです。スタイルやコンテンツを乱すことなく、ユーザーが通常どおり Web サイトのコンテンツをコピーできるようにしたいと考えています。選択の最後に著作権を追加する方法を探しています。ともかく?

よろしく

0 投票する
2 に答える
1500 参照

javascript - JavaScript 選択したテキストからリンクを抽出する方法

window.getSelection と を使用して、選択したテキストから URL を抽出する方法を探していますdocument.selection

選択するテキストは次のようになります。

リンクを抽出するために選択されたテキスト (ユーザーが選択):

オプション 1 (タグの間にテキストとテキストを含める):

オプション 2 (テキストとリンクのフラグメントを選択):

関数は return でなければなりませんhttp://example.com

0 投票する
1 に答える
802 参照

algorithm - 3D 立方体で選択したポイントを折りたたむ

次の 3D キューブ選択問題の効果的なアルゴリズムを見つけようとしています。

ポイントの 2D 配列を想像して (サイズ x サイズの正方形にしましょう)、それを辺と呼びます。

計算を簡単にするために、max を size-1 として宣言します。6 面の立方体を作成し、0,0 を左下に、max,max を右上に保ちます。z を使用して、単一の立方体が配置されている側を追跡します。y は上、x は右です。

ランダムな単一点を選択するには、次のような 3 つの乱数を使用できます。

プラスを選択するには、特定の方向が現在の辺の内側に収まるかどうかを検出できます。そうでなければ、立方体が中心点に接する側にあることがわかります。

次のような 4 つの関数を使用します。

ここで、ランダムな点で任意の形状 (定義済みのランダムなブロブなど) を選択する方法を見つけたいと思います。ただし、正方形またはギザギザの円のいずれかに調整することで解決します。

実際の表面積はゆがみ、コーナーでそれ自体に折り畳まれますが、これは問題なく、補正する必要はありません (ステッカーを立方体のコーナーに置くことを想像してください。コーナーがステッカーの中心と一致する場合、ステッカーの 4 分の 1 が必要になります)角に貼り付けて折りたたむために取り外します)。繰り返しますが、これは望ましい効果です。

重複選択は許可されていないため、2 回選択されるキューブは何らかの方法でフィルター処理する必要があります (または重複が発生しないように計算する必要があります)。これは、HashSet または List を使用し、ヘルパー関数を使用してエントリが一意かどうかを確認するという単純なものです (選択は常に最大 1000 キューブをはるかに下回るため、これは問題ありません)。

キューブの辺を含むクラスのこの関数のデリゲートは次のようになります。

現在、キューブの各面をチェックして、選択のどの部分がその面にあるかを確認することを考えています。

選択した Point3D の同じ側にある選択部分を計算することは、位置を変換する必要がなく、境界だけであるため、簡単です。次に 5 つの翻訳を行い、その後、他の 5 つの側面をチェックして、選択した領域の一部がその側面にあるかどうかを確認します。

私はこのような問題を解決することに慣れていないので、誰かがこの問題に対するより良い解決策を持っているかどうか疑問に思っていました.

@arghbleargh 詳細な説明をリクエストしました:

6 辺のキューブを使用し、16 のサイズを使用します。各辺は 16x16 ポイントです。配列が次のように開始されるように、サイド、y、x に z を使用した 3 次元配列として格納されます。それもいいでしょう) [z][y][x] しかし、各サブアレイの個別の初期化が必要になります。

選択した点を中心とした 5x5 の正方形を選択してみましょう。このような 5x5 の正方形を見つけるには、問題の軸に 2 を減算して加算します: x-2 を x+2 に、y-2 を y+2 にします。

側面をランダムに選択すると、選択する点は z = 0 (立方体の x+ 側面)、y = 6、x = 6 です。

6-2も6+2もサイドの16×16配列の範囲内に収まっていて選びやすいです。

ただし、選択ポイントを x=0 および y=6 にシフトすると、少し難しくなります。x - 2 では、選択した辺の左側の辺を調べる必要があります。幸いなことに、辺 0 または x+ を選択しました。これは、立方体の上辺または下辺ではなく、上辺または下辺に移動しない限り、すべての軸が x+ = 右、y+ = 上になるためです。したがって、左側の座標を取得するには、最大 (サイズ - 1) - x を減算するだけで済みます。サイズ = 16、最大 = 15、x = 0-2 = -2、最大 - x = 13 を覚えておいてください。したがって、こちら側のサブセクションは x = 13 ~ 15、y = 4 ~ 8 になります。これをパーツに追加すると、元の側で選択すると、選択全体が得られます。

選択範囲を 0,6 にシフトすると、すべての軸が簡単に整列するという安全性に隠れることができないため、より複雑になります。多少の回転が必要な場合があります。可能な翻訳は 4 つだけなので、それでも扱いやすいです。

0,0 にシフトすると、問題が実際に発生し始めます。現在、左と下の両方が反対側に回り込む必要があります。さらに、細分化された部分でも領域が外れるからです。この傷の唯一の救済策は、選択の重複部分を気にしないことです。そのため、可能な場合はそれらをスキップするか、後で結果からフィルターすることができます。

「法線軸」側から下側に移動したので、回転させて正しい座標を一致させ、点がエッジを正しく包み込むようにする必要があります。

各辺の軸は立方体に折りたたまれているため、正しい点を選択するために一部の軸を反転または回転する必要がある場合があります。

エリア内にある立方体上のすべてのポイントを選択するためのより良い解決策があるかどうかという問題が残ります。おそらく、それぞれの側に平行移動行列を与えて、ワールド空間での座標をテストできますか?

0 投票する
1 に答える
1075 参照

javascript - IE 8 getSelection().anchorOffset 代替

最新のブラウザーでうまく機能する Javascript コードを入手しました。

window.getSelection() メソッドを持たない IE 8 で同じ結果を得るにはどうすればよいですか?

0 投票する
1 に答える
661 参照

javascript - insertElement 後の ckeditor の createBookmarks2

私のソースコード:

カーソルを使用するfirst bookmarkと、newElement の前の位置にジャンプしますが、newElement の後に位置が必要です。しかし、私が使用するsecond bookmarkと、このエラーが発生 Uncaught TypeError: Cannot read property 'type' of nullします: 一部の ckeditor.js ファイルで

newElement の後にカーソル位置を取得する方法はありますか?

0 投票する
2 に答える
1865 参照

combobox - GetSelection コンボボックス

入力時にリストからコンボボックスを選択するために他に何が必要なのかわかりません。最終的に SetInsertionPoint を追加します。しかし、今のところ、選択したアイテムは常に-1です