3

这似乎是一个已经被回答了一千次的问题,但我发现的解决方案既不适用于 Internet Explorer 10,也不适用于 Windows-phone 8(对我来说更重要的是)。

我的一般问题如下:我正在编写一个 Windows-Phone-8、C# 应用程序,用户应该在其中编辑大量文本。由于每个 UIElement 限制为 2048 像素,我不能使用 TextBox。所以我想让用户textarea在 Webbrowser 控件中编辑文本。为此,文本区域必须根据输入/删除的文本调整大小。

我尝试了这些线程中的每个答案:

但我没有让它在 Internet Explorer 10 中工作。

我会感谢任何完全正常工作的 html,因为我以前从未使用过 html 和 JavaScript,或者让用户编辑大量文本的其他解决方案。

4

2 回答 2

0

超轻重量:

有没有人认为contenteditable?滚动没有乱七八糟,我唯一喜欢它的 JS 是如果您打算将数据保存在模糊中......显然,它在所有流行的浏览器上都兼容:http: //caniuse.com/#feat=内容可编辑

只需将其设置为看起来像一个文本框,它就会自动调整大小...使其最小高度和行高成为首选的文本高度并拥有它。

这种方法的好处在于您可以在某些浏览器上保存和标记。

http://jsfiddle.net/gbutiri/v31o8xfo/

<style>
.autoheight {
    min-height: 16px;
    font-size: 16px;
    margin: 0;
    padding: 10px;
    font-family: Arial;
    line-height: 16px;
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    overflow: hidden;
    resize: none;
    border: 1px solid #ccc;
    outline: none;
    width: 200px;
}
</style>
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script>
$(document).on('blur','.autoheight',function(e) {
    var $this = $(this);
    // The text is here. Do whatever you want with it.
    console.log($this.html());
});

</script>
<div class="autoheight contenteditable" contenteditable="true">Mickey <b>Mouse</b></div>
于 2014-10-16T21:16:44.350 回答
0

我不确定这是否适合你,但试试 jQuery Autosize:http ://www.jacklmoore.com/autosize/ (.) 我不确定你是否可以在你的应用程序中使用它,但我之前在我自己的项目中使用过它,发现它工作得很好。

于 2013-07-31T16:22:53.167 回答