【问题标题】:Can't copy / paste in PhoneGap Ionic IOS无法在 PhoneGap Ionic IOS 中复制/粘贴
【发布时间】:2015-01-27 02:06:41
【问题描述】:

我正在使用 PhoneGap 在 IOS 中构建一个应用程序,它几乎完成了。

我刚刚遇到了一个小问题。用户似乎无法在输入字段中复制/粘贴他的内容。

我正在使用

  • 科尔多瓦 3.6.3
  • 离子框架 1.2.8
  • IOS 8.1.1

【问题讨论】:

    标签: ios cordova ionic-framework


    【解决方案1】:

    基于@jcesarmobile 的回答。这对我有用。离子 2 , beta 10。

     .selectable{
        -webkit-user-select: auto;
        -khtml-user-select: auto;
        -moz-user-select: all;
        -ms-user-select: auto;
        -o-user-select: auto;
        user-select: auto; 
      }
    

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,并且在我的应用中使用了加载面板

      @Adam 提供的 css 修复工作

      .backdrop { display: none; } 
      .backdrop.visible { display: block; } 
      .loading-container:not(.visible) { display: none; }
      

      【讨论】:

        【解决方案3】:

        Kludgy 仅在台式机上,但我使用这样的东西:

          .directive('selectable', [function () {
            return {
              restrict: 'A',
              priority: 2000,
              link: function (scope, ele, attrs) {
                var element = ele[0];
                function leave() {
                  element.blur();
                  element.setAttribute('contenteditable', 'false');
                }
                function keydown(e){
                  switch(e.which) {
                    case 33: // pageup
                    case 34: // pagedown
                    case 35: // end
                    case 36: // home
                    case 37: // left
                    case 38: // up
                    case 39: // right
                    case 40: // down
                    case 16: // shift
                    case 17: // ctrl
                    case 91: // meta
                      return;
        
                    default:
                      //CTRL-A /CTRL-C?
                      if((e.keyCode === 'C'.charCodeAt(0) || e.keyCode === 'A'.charCodeAt(0)) && (e.ctrlKey || e.metaKey)) {
                        return;
                      }
                      console.log(e);
                      break;
                  }
        
                  leave();
                }
                function mouseDown(){
                  element.setAttribute('contenteditable', 'true');
                }
                element.addEventListener('mousedown', mouseDown);
                element.addEventListener('keydown', keydown);
                element.addEventListener('cut', leave);
                element.addEventListener('paste', leave);
                ele.on('$destroy', function () {
                  element.removeEventListener('mousedown', mouseDown);
                  element.removeEventListener('keydown', keydown);
                  element.removeEventListener('cut', leave);
                  element.removeEventListener('paste', leave);
                });
        
              }
            };
          }])
        

        如果您愿意编辑 ionicXXX.js,您还可以在他们检查 isContentEditable 的任何地方检查类或属性...

        【讨论】:

          【解决方案4】:

          尝试添加这个 css

             input, textarea {
                  -webkit-user-select: auto !important;
                  -khtml-user-select: auto !important;
                  -moz-user-select: auto !important;
                  -ms-user-select: auto !important;
                  -o-user-select: auto !important;
                  user-select: auto !important;  
            }
          

          我想 ionic 包含一些 css 以避免复制/粘贴,因为通常应用程序不允许您复制其内容

          【讨论】:

          • 它似乎确实打开了 IOS 输入面板,但它不允许我复制/过去任何东西。你知道这可能是什么问题吗?
          • 我正在研究这个并安装了 ionic 1.2.13。我输入了一个输入,它允许在其中复制/粘贴而不会覆盖 css。尝试更新到 ionic 1.2.13
          • 我成功使用了上述修复程序,然后我遇到了一个错误,即在 iOS 设备上复制和粘贴在某些时候停止工作,直到应用程序重新启动。我发现这个bug是在加载动画显示后出现的。修复是为了确保当加载动画被解除时,使用 display: none 隐藏两个 div 如下:.backdrop { display: none; } .backdrop.visible { display: block; } .loading-container:not(.visible) { display: none; }
          • 感谢您的回答。我想补充一点,如果您想在 Firefox 中启用文本选择而不是自动,您接下来将值设置为“全部”。即:-moz-user-select: all
          • 我一直在测试,但无法使其适用于所有人
          猜你喜欢
          • 2018-02-09
          • 1970-01-01
          • 2013-04-28
          • 2018-03-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-03-09
          相关资源
          最近更新 更多