打开jQuery UI对话框时删除了用户选择..如何解决此问题?

时间:2013-05-21 11:35:36

标签: javascript jquery jquery-ui dom execcommand

我正在尝试创建一个链接:

document.execCommand('createLink',false,linkVal);

为了从用户获取链接href值,我正在使用jQuery UI对话框。

因此,当我的用户在页面上选择一些文字时点击链接,它将打开一个像这样的jQuery UI对话框(此对话框中包含一个表单)。

$("a#link-it").on('click',function(e){
    e.preventDefault();
    $( "#dialog-form" ).dialog( "open" );   
});

Ui Dialong inilization代码如下:

$( "#dialog-form" ).dialog({
      autoOpen: false,
      height: 300,
      width: 350,
      modal: true,
      buttons: {
        "Create": function() {
        var linkVal=$("#link").val();
        document.execCommand('createLink',false,linkVal);
        $( this ).dialog( "close" );
        },
        Cancel: function() {
          $( this ).dialog( "close" );
        }
      },
      close: function() {
        allFields.val( "" ).removeClass( "ui-state-error" );
      }
    });

jQuery UI对话框正在打开&工作正常,但问题是当用户点击链接打开它时,所有用户选择都立即从浏览器窗口擦除。所以这个命令 没有用。

document.execCommand('createLink',false,linkVal); 

因此,请建议在打开UI对话框后如何防止擦除用户选择?

或者您是否可以建议如何使用所见即所得的编辑器链接进行创作?

1 个答案:

答案 0 :(得分:0)

最后,我使用给定here

的解决方案解决了这个问题

查看https://code.google.com/p/rangy/

http://rangy.googlecode.com/svn/trunk/demos/saverestore.html