将apple选项卡空间转换为 

converting apple-tab-space into  

本文关键字:amp nbsp 转换 apple 选项 空间      更新时间:2023-09-26

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

如果没有,你能提出一个有效的方法吗?

我的代码编辑器使用contenteditablediv(nevermind)

时遇到了一些问题

尝试侦听keydown,并将&nbsp;附加到<input>val():

$(function () {
    $('textarea').keydown(function (e) {
        var code = e.keyCode || e.which;
        if (code == '9') {
            $(this).val($(this).val() + '&nbsb;')
            return false;
        }
    });
});

请点击此处:http://plnkr.co/edit/GF80PSJPLiBOCPJINDuv?p=preview

return false;是关键(不是双关语),因为点击输入中的选项卡将固有地将用户推进到下一个输入。值得注意的是,这是预期的行为,因此在向用户展示此功能时请记住这一点。

更新:非jQuery示例

我突然想到你没有用jQuery标记这个问题,所以这里还有一个普通的JavaScript解决方案:

window.addEventListener('load', function () {
    document.getElementsByTagName('textarea')[0].addEventListener('keydown', function (e) {
        var code = e.keyCode || e.which;
        if (code == '9') {
            this.value = this.value + '&nbsb;';
            e.preventDefault();
        }
    });
}, false);

请点击此处:http://plnkr.co/edit/QJc3Lt2TQGBo8CQqtESO?p=preview

试试这个(将"myDiv"替换为您目标的实际div的选择器):

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

我从这个答案中提取了以下代码片段:替换JavaScript 中的制表符

根据您的问题,在Mac上的浏览器或代码编辑器中,您似乎希望重新映射一个组合键(命令选项卡)以输出"&nbsp"(出于显示目的省略了分号)

如果这确实是您想要做的,那么有一个名为keyremap4macbook的伟大实用程序,您可以在此处查看。我在远程桌面会话中使用它来重新映射密钥,效果非常好。您可以只为某些应用程序进行映射,这甚至比现有的通用密钥映射实用程序更好。