是否可以禁用文本选择以使PhoneGap应用程序更类似于普通的原生应用程序?
这样的事情:
document.onselectstart = function() {return false;}
或:
* {
user-select: none;
-moz-user-select: -moz-none;
-khtml-user-select: none;
-webkit-user-select: none;
}
或许多其他事情都不起作用。
答案 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;
}