禁用PhoneGap中的文本选择

时间:2012-08-05 22:45:07

标签: android cordova textselection

是否可以禁用文本选择以使PhoneGap应用程序更类似于普通的原生应用程序?

这样的事情:

document.onselectstart = function() {return false;}

或:

* { 
user-select: none;
-moz-user-select: -moz-none;
-khtml-user-select: none;
-webkit-user-select: none;
}

或许多其他事情都不起作用。

9 个答案:

答案 0 :(得分:55)

将其置于html而不是*,对我有用:

html {
    -webkit-user-select: none;
}

答案 1 :(得分:32)

我全神贯过地寻求帮助。这最终对我有用。

public class MainActivity extends DroidGap {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        super.loadUrl("file:///android_asset/www/index.html");

        super.appView.setOnLongClickListener(new View.OnLongClickListener() {

            public boolean onLongClick(View v) {
                return true;
            }
        });
    }
}

setOnClickListener是神奇的。请确保在调用super.loadUrl之后将其放入。

当然,这会禁用整个应用程序的文本选择,但我很好,我现在没有任何其他方法。

我还不确定这个的完整含义,但我确实利用了JqueryMobile事件“taphold”,它仍然可以正常工作。我相信这可以通过长时间点击appView(托管你的HTML应用程序)并阻止它冒泡来实现。

答案 2 :(得分:8)

除了ThinkingStiff提到的内容,我还使用以下内容删除任何突出显示/复制&糊

-webkit-touch-callout: none;
-webkit-tap-highlight-color: rgba(0,0,0,0); 

答案 3 :(得分:8)

这也可以。

<body oncontextmenu="return false" ondragstart="return false" 
onselectstart="return false">

答案 4 :(得分:4)

添加此并享受。也适用于iOS。

<style type="text/css">
*:not(input,textarea) {
    -webkit-touch-callout: none;
    -webkit-user-select: none; /* Disable selection/Copy of UIWebView */
}
</style>

答案 5 :(得分:1)

我在Android和iOS设备以及模拟器/模拟器上使用了以下代码及其正常工作:

 * {
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    }

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

答案 6 :(得分:0)

最近更新到Android 4.4 kitkat,它解决了出现在taphold上的Edittext问题(长按)。显然,edittext并没有在android 4.4上使用jquery mobile和phonegap在taphold上显示。我正在使用自定义的aosp rom,所以没有在正式版本上测试,但我猜测(并希望)它应该适用于任何4.4版本。它似乎也解决了我在onclick上遇到的其他冲突,我在下面发布了这些冲突。

旧的方法我发现旧的ICS roms(仅在4.0.4自定义ROM上测试)有效(可能有问题)。
通过添加滚动条

示例:

<div id="scroll">content</div> 

<style>
#scroll {

height: 100%;
width: 100%;
}
</style>

它禁止EditText在taphold(长按)上弹出,用于phonegap和jquery mobile。不确定这是否会导致任何冲突(因为看起来有点影响onclick正在考虑整理)但是常规文本应该运行良好.--- 使用Android 4.4整理的问题,不再需要滚动。 (见帖子顶部)

答案 7 :(得分:0)

对我而言,这是最好的:

-webkit-tap-highlight-color: rgba(0,0,0,0); 
tap-highlight-color: rgba(0,0,0,0);

我的情况发生在pixi.js上,

plugins.interaction.autoPreventDefault = true;

答案 8 :(得分:-1)

* {
    -webkit-touch-callout: none;
    -webkit-user-select: none; 
}

[contenteditable="true"] , 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;  
}