Javascript mouseup事件后禁用jQuery上下文菜单

Javascript mouseup事件后禁用jQuery上下文菜单,javascript,jquery,html,contextmenu,Javascript,Jquery,Html,Contextmenu,在jQuery中使用自定义文本选择函数时,my contextMenu事件将被禁用 最简单的工作示例,使用javascript和html文件(javascript的数量比它看起来的少): var markFeature={ getSelected:函数(){ var t=''; if(window.getSelection) t=window.getSelection(); else if(document.getSelection) t=document.getSelection(); el

在jQuery中使用自定义文本选择函数时,my contextMenu事件将被禁用

最简单的工作示例,使用javascript和html文件(javascript的数量比它看起来的少):

var markFeature={
getSelected:函数(){
var t='';
if(window.getSelection)
t=window.getSelection();
else if(document.getSelection)
t=document.getSelection();
else if(文档选择)
t=document.selection.creatRange().text;
返回t;
},
applyHighlight:function(){
var st=markFeature.getSelected();
如果(st!='')
{
var-str1='';
var替换=str1.concat(st,“”);
var_st=新的正则表达式(st,“g”);
var replaced=$(“body”).html().replace(\u st,replacement);
$(“正文”).html(已替换);
}
},
register_contextMenu:函数(){
//markFeature.addCSS();
$.contextMenu({
选择器:'*',
项目:{
“项目1”:{名称:“项目1”},
“项目2”:{名称:“项目2”},
}
});
},
init:function(){
$(document.bind(“mouseup”,markFeature.applyHighlight);
}
};
$(文档).ready(markFeature.register\u上下文菜单);
$(document).ready(markFeature.init)

右键单击我

正则表达式搜索body标记和body标记中的所有HTML。上下文菜单的HTML是由contextMenu JS在body标记中添加的,因此它会被更改和中断

我删除了
getSelected
和正则表达式。我将其替换为改编自:


.亮点{
背景色:#00E000;
}
var cssApplier,markFeature;
window.onload=函数(){
rangy.init();
cssApplier=rangy.createCssClassApplier(“突出显示”{
正常化:正确
});
};
$(this).on(“mouseup”,function()){
cssApplier.applyToSelection();
});
标记特征={
register_contextMenu:函数(){
$.contextMenu({
选择器:“*”,
项目:{
项目1:{
名称:“第1项”
},
项目2:{
名称:“第2项”
}
}
});
},
init:function(){
$(document.bind(“mouseup”,markFeature.applyHighlight);
}
};
$(文档).ready(markFeature.register\u上下文菜单);
$(document).ready(markFeature.init);

带有body标签的contextMenu的javascript如何?此外,此功能需要适用于一般网页。因此,我们没有要搜索的预定义div,只搜索网页正文,正文将由文本组成。我已根据您的反馈改写了我的答案。如果您认为答案回答了您的问题,请将其标记为正确答案。然而,你没有义务。
<script src="http://rangy.googlecode.com/svn/trunk/currentrelease/rangy-core.js"></script>
<script src="http://rangy.googlecode.com/svn/trunk/currentrelease/rangy-cssclassapplier.js"></script>
<style type="text/css">
  .highLight {
    background-color: #00E000;
  }
</style>
<script>
  var cssApplier, markFeature;

  window.onload = function() {
    rangy.init();
    cssApplier = rangy.createCssClassApplier("highLight", {
      normalize: true
    });
  };

  $(this).on("mouseup", function() {
    cssApplier.applyToSelection();
  });

  markFeature = {
    register_contextMenu: function() {
      $.contextMenu({
        selector: "*",
        items: {
          item1: {
            name: "item-1"
          },
          item2: {
            name: "item-2"
          }
        }
      });
    },
    init: function() {
      $(document).bind("mouseup", markFeature.applyHighlight);
    }
  };

  $(document).ready(markFeature.register_contextMenu);

  $(document).ready(markFeature.init);
</script>