3

多分これはブラウザ関連の問題ですか?私は現在Chromeを使用しています...

私が達成しようとしているのは、ユーザーがカーソルでページ上で選択 (強調表示) したテキストをユーザーが保存できるようにすることです。

私は javascript/jQuery/ajax をすべてセットアップしました...コンソール経由でテストすると、魅力的に機能します。

つまり、テキストを選択してから、このコマンドを実行します。

alert(getSelected());

選択した文字でアラートポップアップが表示されます。...理論的には機能します。

ただし、ボタンを使用して電話をかけたい場合、テキストの選択が最初に消えてしまうため、選択したものを表示/保存できません。

<script>
$('#save').click(function(){
  var selected_text = getSelected();
});
</script>

<div id="save"><img src="the_save_button.jpg" height="50" width="50" /></div>

「保存」DIVをクリックした後/クリックした後にテキスト選択を維持する方法はありますか?

あらゆるソリューションに対応!! ありがとう!

4

4 に答える 4

2

以下を試してください:

$('#save').click(function(){
   var selected_text = "";
   if (window.getSelection) {
        selected_text = window.getSelection();
   } else if (document.getSelection) {
        selected_text = document.getSelection();
   } else if (document.selection) {
        selected_text = document.selection.createRange().text; 
   }
   alert(selected_text)
});

デモ

また:

$('#save').mousedown(function(){
   // ...
});

デモ

于 2012-08-02T22:03:35.323 に答える
0

選択が完了したらすぐに、それを変数に割り当てて保存し、ボタン クリック イベントのみを ajax クエリに使用する必要があります。ここでの問題は、クリック イベントが開始されるとすぐに再び選択を解除することです (マウスをクリックすると、青い背景の選択部分が消えることに気付くでしょう)。したがって、何も返されません。

于 2012-08-02T22:22:04.917 に答える
0

ユーザーがテキストを選択したら、それをグローバル変数に保存します。選択を解除したときに消去しないようにしてください。変数は、ユーザーが最後に選択したテキストを保持する必要があります。次に、ボタンはこのテキストを参照できます。おそらく次のようなものも使用できます。

$('html').click(function() {
    global_var = '';
});
$('the button').click(function(event) {
    event.stopPropagation();
});

ユーザーがボタンをクリックした場合を除き、テキストを削除できるようにします。

于 2012-08-02T22:04:09.827 に答える