我已经尝试过寻找阻止鼠标右键单击和文本选择的方法。Discourse 提供了此功能,但我尝试了几种其他方法,但尚未找到理想的方案。因此,我正在寻找一些代码来使用。我发现了这个方法。
添加到 CSS
body * {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
button, .menu-item {
pointer-events: auto !important;
}
并添加到 head 的 JavaScript
<script type="text/discourse-plugin" version="0.8">
if (settings.prevent_right_click) {
document.addEventListener('contextmenu', function(e) {
e.preventDefault(); // 取消右键单击操作
// 检查是否启用了警报消息
if (settings.alert_enabled) {
alert(settings.alert_message);
} else {
// 检查是否启用了文本选择阻止
if (settings.prevent_text_selection) {
}
}
});
}
</script>
我在我的论坛上试了一下。在用户层面没有发现异常。但是,我仍然不确定它是否还有其他不良影响。
为了测试它,我创建了一个主题组件。
如果我的方法不正确,或者您知道更好的方法。请告知我。
