将apple-tab-space转换为

时间:2013-08-23 04:58:04

标签: javascript dom

是否有将apple-tab-space转换为 字符的库?

如果没有,请你建议一个有效的方法吗?

我的代码编辑器使用contenteditble div(nevermind)时遇到了一些麻烦

3 个答案:

答案 0 :(得分:3)

尝试收听keydown,并将&nbsp;追加到<input>的{​​{1}}:

val()

这里是Plnk:http://plnkr.co/edit/GF80PSJPLiBOCPJINDuv?p=preview

$(function () { $('textarea').keydown(function (e) { var code = e.keyCode || e.which; if (code == '9') { $(this).val($(this).val() + '&nbsb;') return false; } }); }); 是关键(没有双关语),因为输入中的点击标签会固有地将用户推进到下一个输入。值得注意的是, 是预期的行为,因此在向用户展示此功能时请记住这一点。

更新:非jQuery示例

我突然想到你没有用jQuery标记这个问题,所以这里也是vanilla JavaScript解决方案:

return false;

这里是Plnk:http://plnkr.co/edit/QJc3Lt2TQGBo8CQqtESO?p=preview

答案 1 :(得分:1)

尝试此操作(将“myDiv”替换为您要定位的实际div的选择器):

$('#myDiv').html(function() {
    return this.innerHTML.replace(/\t/g, '&nbsp;');
});

我从此答案中提取了此代码段:Replacing tab characters in JavaScript

答案 2 :(得分:1)

从你的问题来看,听起来好像你在Mac上的浏览器或代码编辑器中要重新映射一个组合键(命令选项卡)来输出“&amp; nbsp”(为了显示目的省略了分号)。

如果确实如此,那么有一个很棒的实用工具叫做keyremap4macbook,您可以查看 here 。我用它在远程桌面会话期间重新映射密钥,它的工作真的很棒。您可以只为某些应用程序进行映射,这甚至比那里的通用键映射实用程序更好。