我试图在一个令人满意的div中包含一些不可编辑的内容。 下面的代码渲染在IE9(以及其他浏览器)中做得很好。但仅凭IE9我就会发现一个奇怪的问题。不可编辑的内容在IE9中可以重新调整大小。我不想要这种行为。因此,我想通过尝试捕捉跨度上的点击事件而忽略相同的行为。然后我观察到另一个问题,即没有调用click事件函数。看起来确实没有任何事件可以附加到该跨度。有趣的是,当我删除了跨度的那个满足属性时,它开始拾取事件(但这并没有帮助,因为我需要它非内容可编辑)。
所以问题是我们如何防止用户在IE9下面调整此范围?
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('span').bind('click', function(e) {
e.preventDefault(); return false;
});
});
</script>
</head>
<body>
<div contenteditable="true">
<span contenteditable="false">non-editable</span>
editable div
</div>
</body>
</html>
有趣的是,当我在jsfiddle上尝试这个时,我发现我的问题已经解决了。我发现跨度确实无法调整。然后我意识到如果我在i帧中渲染我的上述内容,那么它的行为就像我希望的那样(即禁用调整大小)。但是,这是一个非常粗糙的解决方案。我希望应该找到一个更好的解决方案。