0

我试图在 contenteditable div 中有一些不可编辑的内容。下面的代码渲染在 IE9(以及其他浏览器)中做得很好。但是单独使用 IE9 就看到了一个奇怪的问题。不可编辑的内容在 IE9 中可重新调整大小。我不想要这种行为。所以我想通过尝试捕捉跨度上的点击事件并忽略它们来表现得聪明。然后我观察到另一个问题,其中没有调用单击事件函数。似乎确实没有任何事件可以附加到该跨度。有趣的是,当我删除 span 的 contenteditable 属性时,它开始接收事件(但这无济于事,因为我需要它是不可编辑的)。

所以问题是我们如何防止用户在 IE9 中调整这个 span 的大小?

<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-frame 中,那么它的行为就像我想要的那样(即禁用调整大小)。但是,这是一个非常粗略的解决方案。我期待应该有一个更好的解决方案。

4

0 回答 0