問題タブ [rangy]

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 投票する
0 に答える
621 参照

javascript - CSSで範囲指定したスパンの属性名

cssApplier でスパンの属性名を Ragy に入れる方法を教えてください。一例:

私は試します:

しかし、うまくいきません。それは結果でした:

それはrangyのバグですか?

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

javascript - Rangyでは、setStartBeforeメソッドで範囲を拡張しても、range.canSurroundContentsメソッドはfalseを返します。

私は次のhtmlを持っています:

選択範囲は文字でマークされてい|ます。また、選択のスクリーンショット:

元の選択のスクリーンショット

この選択範囲を拡張して、次のコードスニペットを使用して「a」要素全体を含めることができます(Rangyライブラリhttp://code.google.com/p/rangy/を使用)。

実際の動作を確認するには、http://jsfiddle.net/LTwkZ/1/を確認してください。

また、以下はtrueを返します。

問題は、「range.canSurroundContents()」が「false」を返すことです。'a'要素は、最初から最後まで、範囲に完全に含まれています。'canSurroundContents()'を使用できない理由と、可能であれば、どうすればよいですか。

ありがとう!

0 投票する
4 に答える
2992 参照

javascript - コンテンツの編集可能な div にテーブルを挿入する

私のコードが何をしているかを示すフィドルがあります。javascript/jquery を使用して、現在のキャレット位置でコンテンツ編集可能な div にテーブルを挿入しようとしています。これを実現するために、 Tim Down の Rangyライブラリを使用しています。私は次のjavascriptでこれをやっています。

ここで役立つのは getFirstRange 関数です。

このテーブルが配置されている場所に有効な html を作成する必要があります。たとえば、キャレットがリンクの途中にある場合、次の html を回避しようとしています。

代わりに、このように表示したいと思います。

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

javascript - カスタムスタイルを適用するときにHTMLタグを分割する

WYSIWYGエディターを使用していて、テキストを選択して、たとえば太字で適用すると、ブラウザーは選択範囲を<span style="font-weight:bold">タグでラップします(呼び出したdocument.execCommand("useCSS", false)および/またはdocument.execCommand("styleWithCSS", true))。ここで、そのサブセットを選択して再度太字を適用すると、元の太字タグが次のようなものに分割されます。

私が取り組んでいる製品では、execCommandで直接サポートされていない機能(フォントファミリとフォントサイズの両方を適用するためのテキストのレベル(クラス)の追加など)を含む、さまざまなWYSIWYG機能をサポートしています。ネストされたタグで問題が発生しています。スタイリングから現在の範囲を削除し、基本的に前のタグを閉じて、コンテンツの後に新しいタグを開くようにブラウザーに指示する方法はありますか?

execCommandリファレンスにすぐに何かが表示されません。

rangy 1.2.3を使用してある程度の成功を収めていますが、欠落しているコマンドがあるかどうかはわかりません。

上記の例に太字と斜体を追加すると、これはより複雑になります。次に、真ん中の太字を削除すると、3つのスパンが生成され、2つは太字と斜体のテキストで、真ん中は斜体だけです。

現時点では、エディターの使用をChromeに制限しています。

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

javascript - トークンを選択範囲に変換する

jQueryセレクション内の一連のトークン範囲を範囲範囲のセットに変換するにはどうすればよいですか?

たとえば、私はこれを持っています:

{そして、テキストを範囲内と範囲内に変換したい}(そしてトークンを削除したい)。

私はこれを使ってみました:

しかし、範囲が正しくありません。selectCharactersメソッドは空白を無視すると思います。

また、TextRangeModule可能であれば使用しないことをお勧めします。

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

javascript - 範囲のループで範囲操作 DOM

tokensToRanges次の関数から作成された一連の範囲があります。

トークンを選択範囲に変換する

次に、各範囲をループして、それらにアクションを適用します。ただし、エラーが発生します。

キャッチされないエラー: 範囲エラー: DOM の変更後、範囲は無効になります ([WrappedRange("foobar":6)])

エラーが発生する理由がわかりましたが、一連の範囲をループして、それぞれを操作するにはどうすればよいでしょうか?

0 投票する
0 に答える
314 参照

javascript - 複数のノードにまたがる範囲範囲を複数の範囲に分割する

範囲を複数のノードにまたがる複数の範囲範囲に分割するにはどうすればよいですか?

{たとえば、 and で示される範囲があります}(トークンは実際にはコンテンツにはありません)。

そして、1 つの範囲を 2 つに分割し、それぞれを独自のノードに分割します。たとえば、次のようになります。

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

javascript - 範囲の広い CSSClassApplier を作成するのは、クラスではなく要素のみをトグルする

とにかくありますか/どうすればrangyのCSSClassApplierをクラスではなく要素のみをトグルさせることができますか?

私は試した:

しかし、うまくいきません。

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

typeerror - 物体 has no method 'methodeX'

i get an error in chrome:

Uncaught TypeError: Object s1A has no method 'applyToSelection'

in Firefox(firebug) i get this:

TypeError: val.applyToSelection is not a function

i get an error in chrome:

Uncaught TypeError: Object s1A has no method 'applyToSelection'

in Firefox(firebug) i get this:

TypeError: val.applyToSelection is not a function

i use the rangy-core and the rangy-cssclassappliere

my Code:

if id do this:

it works fine. But i need it for an option field and i want to get the value


How to remove touchevent in js?

I'm trying to remove touchevent after the first touch.
I've tried the next code, but it did not work:

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

javascript - Etch.js と Backbone.Marionette.js の統合

Backbone.Marionette.js アプリケーションへの Etch.js の統合に直面したことのある人はいますか?

保存イベントのバインドに問題があります。これは私のマリオネット ビューのコードです。

私のテンプレートには、次のようなものがあります。

プラグインは正しくロードされています。フィールドをクリックすると、Etch ボタン バーが表示され、編集可能になった要素のコンテンツを編集できます。保存ボタンをクリックすると、実際にモデルの save() をトリガーできます。方法。

問題は、提出されたモデルが元のモデルであり、フィールドに編集を加えていないことです。それは拘束力のある問題だと思います、何かアイデアはありますか?

いつもありがとうございます。