右键单击在QWebView
Windows 上查看的网页上的任何文本会选择光标下的单词。我想禁用此行为,但在文档中找不到任何参考。
问问题
2849 次
2 回答
5
这种偏好似乎深入到了WebkitQWebView
(为Google Chrome 等提供支持的引擎)。有一个Webkit 错误涉及围绕右键单击某些文本时所需行为的一些讨论,但此讨论(以及后续更改)发生在 Webkit分支以创建QtWebkitRelease20(随Qt 4.7.x发布的版本)之后 - 我认为这就是为什么您想要的行为在Chrome而不是Qt中可见的原因。还有另一个即将推出的分支QtWebkitRelease22,它将作为Qt 4.8的一部分包含在内- 我认为您所追求的更改将在该版本中实施。
因此,在我看来,您的选择是:
- 硬着头皮去Qt 4.8.0 RC
- 等待 Qt 4.8 的稳定版本并提出解决方法:
- 完全禁用右键菜单对您有用吗?
QWidget::setContextMenuPolicy(Qt::NoContextMenu)
如果是这样,将完成这项工作。 - 您可以连接到然后使用来强制取消选择。
QWebView::selectionChanged()
signal
findText("")
- 完全禁用右键菜单对您有用吗?
于 2011-11-17T08:46:07.217 回答
1
我们可以使用 JavaScript 函数来禁用多个浏览器上的文本选择,如下所示
<script type="text/javascript">
function disableSelection(target){
if (typeof target.onselectstart!="undefined") //For IE
target.onselectstart=function(){return false}
else if (typeof target.style.MozUserSelect!="undefined") //For Firefox
target.style.MozUserSelect="none"
else //All other route (For Opera)
target.onmousedown=function(){return false}
target.style.cursor = "default"
}
</script>
调用此函数
<script type="text/javascript">
disableSelection(document.body)
</script>
于 2012-01-28T05:38:34.013 回答