首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wysihtml5 -如何禁用下划线标记

wysihtml5 -如何禁用下划线标记
EN

Stack Overflow用户
提问于 2013-04-19 01:37:41
回答 1查看 1.1K关注 0票数 4

我在我的网站上遇到了一个关于wysihtml5的小问题。我想只允许几个html标签,如果我从解析器规则中删除了下划线,甚至从wysihtml5库中删除了下划线命令,我仍然可以按CTRL(命令)+U来给选定的文本加下划线。我该怎么做才能摆脱这种行为呢?谢谢你的建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-21 14:00:13

新答案: Here是我更新的解决方案。I updated the existing keydown event handler (和用于跟踪ctrl按下状态的added a keyup handler )如下:

代码语言:javascript
复制
// --------- Shortcut logic ---------
var ctrlDown = 0;

dom.observe(element, "keydown", function(event) {
  var keyCode  = event ? event.which : window.event.keyCode,
    command    = shortcuts[keyCode];
  if (1 == event.ctrlKey) {
    console.log('Ctrl key pressed. Setting ctrlDown = 1.');
    ctrlDown = 1;
  }
  if (85 == keyCode && 1 == ctrlDown) {
    console.log('Pressed "U" (keyCode 85), but Ctrl key still down. Don\'t fire!');
    return event.preventDefault(), !1;
  }
  if (1 == ctrlDown && !event.altKey && command) {
    console.log('Shortcut Ctrl + keyCode ' + keyCode + ' triggered.');
    that.commands.exec(command), event.preventDefault();
  }
});

dom.observe(element, "keyup", function(event) {
  // note: "event.ctrlKey" doesn't work with keyup, use keyCode/which 
  if (17 == (event ? event.which : window.event.keyCode)) {
    console.log('Ctrl key released. Setting ctrlDown = 0.');
    ctrlDown = 0;
  }
});

我把a pull request at github发给你了。

原始答案:要禁用Ctrl+u键盘快捷键,我需要做的就是从wysihtml5-0.4.0pre.js中第8494行的快捷键对象中删除"u“(85)的keyCode。

变化

代码语言:javascript
复制
  shortcuts = {
    "66": "bold",     // B
    "73": "italic",   // I
    "85": "underline" // U
  };

代码语言:javascript
复制
  shortcuts = {
    "66": "bold",     // B
    "73": "italic"    // I
  };

并且您将不能再使用编辑器中的Ctrl+u快捷方式。

或者,您可以捕获按键事件并禁用Ctrl+u快捷键(即。防止默认行为)。类似于:

代码语言:javascript
复制
// --------- disable ctrl+u shortcut for underlining texts ---------
dom.observe(element, "keydown", function(event) {
  if ((event.ctrlKey || event.metaKey) && 'u' == String.fromCharCode(event.which).toLowerCase()) {
    // do something
  }       
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16089654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档