รูปร่างที่ผิดปกติของ textarea?


273

โดยปกติ textareas จะเป็นสี่เหลี่ยมหรือสี่เหลี่ยมเช่นนี้

textarea ปกติ

แต่ฉันต้องการ textarea รูปแบบกำหนดเองเช่นนี้ตัวอย่างเช่น:

textarea รูปทรงที่กำหนดเอง

เป็นไปได้อย่างไร?


45
ยินดีต้อนรับสู่เว็บที่ใช้งานมากที่สุดในช่วงสามปีข้างหน้า!
l0b0

24
ไม่เกี่ยวข้องโดยสิ้นเชิง: ฉันขอถามได้ไหมว่าคุณวางแผนจะใช้สิ่งนี้ในบริบทใด ฉันหมายความว่าฉันไม่สามารถคิดสถานการณ์ที่จะเป็นประโยชน์ดังนั้นฉันต้องการแรงบันดาลใจบางอย่าง
user98085

23
ทุกคนไม่มีปัญหาที่สำคัญ การใช้ a <div>to store text นั้นไม่ใช่ทางออกที่ดี มันอาจช่วยออกแบบและอาจเป็นที่ยอมรับสำหรับข้อความแบบอ่านอย่างเดียว (ซึ่งขัดกับวัตถุประสงค์contenteditable) แต่ก็ไม่ดีสำหรับการป้อนข้อความจากผู้ใช้ div (แม้แต่ contenteditable หนึ่ง) ไม่ใช่องค์ประกอบอินพุตมาตรฐานเช่นองค์ประกอบของฟอร์มปกติดังนั้นจะไม่ได้รับการปฏิบัติเหมือนหนึ่งดังนั้นเนื้อหาจะไม่ถูกบันทึกโดยเบราว์เซอร์ในกรณีที่เกิดปัญหา ใช้ div นำไปสู่การสูญหายของข้อมูล ดูตัวอย่างนี้
Synetech

3
ที่จริงแล้วสิ่งนี้ควรถูกปิดเป็น "แสดงให้เห็นถึงความเข้าใจน้อยที่สุดของปัญหาที่กำลังแก้ไข"
นายเอเลี่ยน

9
แล้วคุณอยากเห็นแถบเลื่อนแนวตั้งที่ไหน?
Rob W

คำตอบ:


262

บทนำ

ก่อนอื่นมีวิธีแก้ปัญหามากมายที่เสนอในบทความอื่น ฉันคิดว่าอันนี้ปัจจุบัน (ในปี 2013) อันที่เข้ากันได้กับเบราว์เซอร์จำนวนมากที่สุดเพราะไม่ต้องการคุณสมบัติ CSS3 ใด ๆ อย่างไรก็ตามวิธีนี้ใช้ไม่ได้กับเบราว์เซอร์ที่ไม่รองรับ contentdeditableโปรดใช้ความระมัดระวัง

ทางออกด้วย div contenteditable

ตามที่เสนอโดย@Getzคุณสามารถใช้ div ด้วยcontenteditableแล้วสร้างมันด้วย div บางตัว นี่คือตัวอย่างโดยมีสองช่วงตึกที่ลอยที่มุมซ้ายบนและมุมขวาบนของ div หลัก:

ผลลัพธ์ด้วย Firefox 28

อย่างที่คุณเห็นคุณจะต้องเล่นกับพรมแดนเล็กน้อยหากคุณต้องการผลลัพธ์เดียวกันกับที่คุณร้องขอในโพสต์ div หลักมีเส้นขอบสีน้ำเงินทุกด้าน ถัดไปต้องติดบล็อกสีแดงเพื่อซ่อนขอบด้านบนของ div หลักและคุณจำเป็นต้องใช้เส้นขอบกับพวกเขาเฉพาะด้านใดด้านหนึ่ง ( ด้านล่างและด้านซ้ายสำหรับบล็อกด้านขวาด้านล่างและด้านขวาสำหรับด้านซ้าย)

หลังจากนั้นคุณสามารถรับเนื้อหาผ่าน Javascript เมื่อมีการเรียกใช้ปุ่ม " ส่ง " ตัวอย่างเช่น และฉันคิดว่าคุณยังสามารถจัดการกับส่วนที่เหลือของ CSS (คนfont-size, colorฯลฯ ) :)

ตัวอย่างโค้ดแบบเต็ม

.block_left {
  background-color: red;
  height: 70px;
  width: 100px;
  float: left;
  border-right: 2px solid blue;
  border-bottom: 2px solid blue;
}

.block_right {
  background-color: red;
  height: 70px;
  width: 100px;
  float: right;
  border-left: 2px solid blue;
  border-bottom: 2px solid blue;
}

.div2 {
  background-color: white;
  font-size: 1.5em;
  border: 2px solid blue;
}

.parent {
  height: 300px;
  width: 500px;
}
<div class="parent">
  <div class="block_left"></div>
  <div class="block_right"></div>
  <div class="div2" contenteditable="true">
    "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut..."
  </div>
</div>


1
ทางออกที่ดี You can't apply a border color for the editable section keeping the two corner div's background-color:whiteแต่มีข้อผิดพลาด: ไม่ใช่เหรอ ยังคงนี้จะเป็นผู้ชนะ +1
Rajesh Paul

3
ฉันไม่เห็นปัญหา มันเป็นไปได้ที่จะตั้งพื้นหลังสี: สีขาวเกี่ยวกับเรื่องนี้: jsfiddle.net/qgfP6/6 แต่คุณต้องตั้งค่าพื้นหลังมิฉะนั้นสิ่งเลวร้ายก็เกิดขึ้น: jsfiddle.net/qgfP6/7 (คุณสามารถเห็นเส้นขอบของคอนเทนเนอร์หลัก ... )
Maxime Lorant

1
มีวิธีแก้ปัญหาที่ต้องใช้ div เพิ่มเติม องค์ประกอบ parrent ซึ่งมีความโปร่งใสและไม่มีเส้นขอบเต็มไปด้วย divs ที่ทับซ้อนกันด้วยเส้นขอบและพื้นหลังและมี div padding เพื่อสร้างเอฟเฟกต์ที่ต้องการ
Qwerty

@ MaximeLorant ฉันบอกเรื่องพวกนี้bad thingsเท่านั้น สิ่งเหล่านี้จะเป็นผลข้างเคียงของสถานการณ์ที่ฉันเพิ่งถามถึงและสิ่งที่คุณทำในซอ แต่มันเป็นทางออกที่ดีจริงๆ ขอบคุณสำหรับการชี้แจง
Rajesh Paul

1
คำตอบที่ยอดเยี่ยม! และที่นี่ฉันจะไปและแนะนำบางสิ่งบางอย่างตามแนวการใช้พื้นที่ข้อความสองส่วนที่อยู่ติดกันพร้อมกับแบ่งเนื้อหาระหว่างทั้งสอง
Zarathuztra

115

ในอนาคตอันใกล้เราสามารถใช้สิ่งที่เรียกว่าcss-shapesเพื่อบรรลุเป้าหมายนี้ div ที่มีcontenteditableชุดคุณลักษณะที่trueรวมเข้าด้วยกันcss-shapesสามารถทำให้พื้นที่ข้อความมีรูปร่างได้

ปัจจุบัน Chrome Canary แล้วสนับสนุน css-shapesตัวอย่างสิ่งที่เป็นไปได้ด้วย css-shapes คือ:

ป้อนคำอธิบายรูปภาพที่นี่

ที่นี่พวกเขากำลังใช้รูปหลายเหลี่ยมเพื่อกำหนดการไหลของข้อความ มันเป็นไปได้ที่จะสร้างรูปหลายเหลี่ยมสองรูปเพื่อให้ตรงกับรูปร่างที่คุณต้องการสำหรับ textarea ของคุณ

ข้อมูลเพิ่มเติมเกี่ยวกับcss-shapesเขียนได้ที่: http://sarasoueidan.com/blog/css-shapes/

วิธีเปิดใช้ css-shapes ใน Chrome Canary:

  1. คัดลอกและวาง chrome: // ค่าสถานะ / # enable-Experimental-web-platform-features ลงในแถบที่อยู่แล้วกด Enter
  2. คลิกลิงก์ 'เปิดใช้งาน' ภายในส่วนนั้น
  3. คลิกปุ่ม 'เปิดใหม่ทันที' ที่ด้านล่างของหน้าต่างเบราว์เซอร์

    จาก: http://html.adobe.com/webplatform/enable/

.container {
  overflow: hidden;
  shape-inside: polygon(200.67px 198.00px, 35.33px 198.47px, 34.67px 362.47px, 537.00px 362.74px, 535.67px 196.87px, 388.33px 197.00px, 386.67px 53.53px, 201.33px 53.53px);
  font-size: 0.8em;
}
/** for red border **/

.container:before {
  content: '';
  position: absolute;
  top: 8px;
  left: 8px;
  width: 190px;
  height: 190px;
  background-color: white;
  border-right: 1px solid red;
  border-bottom: 1px solid red;
}
.container:after {
  content: '';
  position: absolute;
  top: 8px;
  right: 8px;
  width: 190px;
  height: 190px;
  background-color: white;
  border-left: 1px solid red;
  border-bottom: 1px solid red;
}
<div class="container" contenteditable="true">
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque convallis diam lacus, id lacinia quam interdum quis. Ut vitae dignissim lorem, nec lobortis turpis. Fusce non fringilla nulla, eu blandit urna. Nulla facilisi. Nunc tristique, mauris vitae
  tincidunt egestas, eros metus dapibus sapien, quis tincidunt sem dui ac purus. Morbi lobortis, quam sit amet consequat aliquam, elit mi rutrum erat, id tempus turpis turpis et sem. Vivamus tempor mollis porttitor. Sed elementum nisl sit amet sapien
  auctor imperdiet. Sed suscipit convallis nisi, in dignissim risus placerat suscipit. Sed vel lorem eu massa vulputate pretium. Nulla eget dolor sed elit gravida condimentum non vel lorem. Vivamus pretium, augue sed aliquet ultricies, neque nibh porttitor
  libero, a tristique elit mi eu nibh. Vestibulum erat arcu, condimentum eleifend adipiscing ut, euismod eu libero. In pharetra iaculis lorem, at consectetur nisi faucibus eu.

</div>

รูปหลายเหลี่ยมที่สร้างขึ้นด้วย: http://betravis.github.io/shape-tools/polygon-drawing/

ผลลัพธ์

ป้อนคำอธิบายรูปภาพที่นี่

http://jsfiddle.net/A8cPj/1/


ซอและตัวอย่างไม่ได้ผลสำหรับฉัน ข้อความด้านล่างมีรูปหลายเหลี่ยมและซ่อนอยู่ด้านล่าง ฉันทดสอบด้วย Chromium 49, Firefox 44
deathangel908

เพิ่งเห็นสิ่งนี้มันจะเป็นฝันร้ายที่จะตอบสนอง
damiano celent

62

อาจเป็นไปได้ด้วยเนื้อหาที่แก้ไขได้ ?

มันไม่ใช่ textarea แต่ถ้าคุณประสบความสำเร็จในการสร้าง div ด้วยรูปร่างนี้มันก็ใช้ได้

ฉันคิดว่ามันเป็นไปไม่ได้ที่มีเพียง textarea ...

ตัวอย่างเล็ก ๆ น้อย ๆ : http://jsfiddle.net/qgfP6/5/

<div contenteditable="true">
</div>

23

คุณสามารถทำงานกับ div ที่พึงพอใจได้ด้วย div สองมุม:

<div style="border:1px blue solid ; width: 200px; height: 200px;" contenteditable="true">
  <div style="float:left; width:50px; height: 50px; border: 1px solid blue" contenteditable="false"></div>
  <div style="float:right; width:50px; height: 50px;  border: 1px solid blue" contenteditable="false"></div>
  hello world, hello worldsdf asdf asdf sdf asdf asdf
</div>

มันต้องการงาน JS เพิ่มเติมเพื่อดูแลเคสการใช้งานที่แตกต่างกันทั้งหมด แต่พื้นฐานอยู่ที่นั่น
Gidon

20

คุณสามารถทำได้ด้วยCSS Regions

ด้วยภูมิภาคคุณสามารถใช้คุณสมบัติ CSS เพื่อไหลเนื้อหาลงในคอนเทนเนอร์ที่มีสไตล์ที่มีอยู่โดยระบุลำดับคอนเทนเนอร์ใด ๆ ที่คุณเลือกโดยไม่คำนึงถึงตำแหน่งของพวกเขาในหน้า

(แพลตฟอร์มเว็บ)

ป้อนคำอธิบายรูปภาพที่นี่

[ขณะนี้ได้รับการสนับสนุนใน WebKit Nightly, Safari 6.1+ และ iOS7 และสามารถใช้งานได้แล้วใน Chrome และ Opera หลังจากเปิดใช้งานการตั้งค่าสถานะ: เปิดใช้งานการทดลอง - คุณสมบัติแพลตฟอร์มเว็บ - caniuse , แพลตฟอร์มเว็บ ]

ซอ

ดังนั้นคุณสามารถสร้างรูปแบบของ textarea โดยการกระจายข้อความผ่าน 2 ภูมิภาคและแก้ไขโดยการเพิ่ม contenteditable บนเนื้อหา

มาร์กอัป

<div id="box-a" class="region"></div>
<div id="box-b" class="region"></div>
<div id="content" contenteditable>text here</div>

CSS (ที่เกี่ยวข้อง)

#content {
     -ms-flow-into: article;
    -webkit-flow-into: article;
}

.region {
    -ms-flow-from: article;
    -webkit-flow-from: article;
    box-sizing: border-box;
    position: absolute;
    width: 200px;
    height: 200px;
    padding: 0 1px;
    margin: auto;
    left:0;right:0;
    border: 2px solid lightBlue;
}

#box-a {
    top: 10px;
    background: #fff;
    z-index: 1;
    border-bottom: none;
}

#box-b {
    top: 210px;
    width: 400px;
    overflow: auto;
    margin-top: -2px;
}

ผลลัพธ์:

ป้อนคำอธิบายรูปภาพที่นี่

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับภูมิภาค - นี่เป็นแหล่งข้อมูลที่ดี: ภูมิภาค CSS3: เค้าโครงเพจที่สมบูรณ์พร้อม HTML และ CSS3


1
ดี! แม้ว่าจะได้รับการสนับสนุนอย่างแทบจะไม่ (ผู้ใช้ส่วนใหญ่ไม่ต้องการรับโครเมี่ยมคานารีและเปิดใช้งานการตั้งค่าสถานะการทดลองใช้เว็บไซต์) แต่นี่เป็นวิธีที่ "ควร" เสร็จสิ้นแน่นอน
markasoftware

แน่นอน ... โชคไม่ดีที่มันยังไม่ทำงานบน Firefox (แม้แต่ใน Alpha) และอื่น ๆ และมีกลิ่นเหม็นของคำนำหน้าผู้ขาย :( แต่วิธีการนี้น่าสนใจและต้องใช้ในบางเดือน / ปี
Maxime Lorant

ภูมิภาค css, รูปร่าง css, css ฟิลเตอร์ ... มีอย่างอื่นอีกไหมที่จะมีไอค์
Muhammad Umer

@MuhammadUmer ... การยกเว้น CSS
Danield

18

ข้อความยาวในกล่องจะวางเคอร์เซอร์ลงผ่านขอบกลางและฉันไม่สามารถแก้ไขได้

**[Fiddle Diddle][1]**

    #wrap {
        overflow: hidden;
    }
    #inner {
        height: 350px;
        width: 500px;
        border: 1px solid blue;
    }
    #textContent {
        word-wrap: break-word;
        word-break: break-all;
        white-space: pre-line;
    }
    #left, #right {
        height: 50%;
        width: 25%;
        margin-top: -1px;
        padding: 0;
        border: 1px solid blue;
        border-top-color: white;
        margin-bottom: 5px;
    }
    #right {
        margin-left: 5px;
        float: right;
        margin-right: -1px;
        border-right-color: white;
    }
    #left {
        margin-right: 5px;
        float: left;
        margin-left: -1px;
        border-left-color: white;
    }
<div id="wrap">
  <div id="inner">
     <div id="left"></div>
     <div id="right"></div>
     <span id="textContent" contenteditable>The A B Cs</span>
  </div>
</div>

[1]: http://jsfiddle.net/yKSZV/

8

นั่นเป็นไปไม่ได้ฝ่าบาท! โดยทั่วไป textarea จะเป็นกล่องสี่เหลี่ยมหรือสี่เหลี่ยมซึ่งคุณสามารถพิมพ์ได้

อย่างไรก็ตามในการทำบางสิ่งเช่นนั้นคุณสามารถใช้ textarea 2 รายการจากนั้นให้ความกว้างและความสูงที่ระบุ มิฉะนั้นฉันไม่คิดว่ามันจะเกิดขึ้น!

วิธีที่สองจะทำให้องค์ประกอบที่แก้ไขได้

http://jsfiddle.net/afzaal_ahmad_zeeshan/at2ke/

รหัสคือ:

<div contenteditable="true">
   This text can be edited by the user.
</div>

เมื่อใช้สิ่งนี้คุณสามารถทำให้องค์ประกอบใด ๆ สามารถแก้ไขได้! คุณสามารถให้มิติกับมันและมันจะใช้ได้! คุณจะได้รับเช่นเดียวกับ textarea

การอ้างอิง: https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_Editable


3
ไม่ผิด แม้เขาใช้divs แทน textarea เนื่องจาก textarea ไม่สามารถปรับเปลี่ยนเป็นรูปร่างได้! :) @Markasoftware คุณผิดในขณะที่ downvoting คำตอบนี้! .. เนื่องจากนี่เป็นเพียงคำตอบเดียวกับเขา สิ่งเดียวที่ไม่มีในที่นี้คือภาพและรหัสที่จะทำให้ div ที่แก้ไขได้ด้วยรูปร่างนั้น!
Afzaal Ahmad Zeeshan

อะไร? โอ้มากับน้องชายถ้าคุณต้องการให้ฉันลงคะแนนโดยไม่มีเหตุผลที่คุณยินดีต้อนรับมากที่สุด! คำตอบของฉันถูกโพสต์เมื่อ: 9:58 เขาโพสต์คำตอบเวลา 10:10: / ฉันเป็นคนแรกที่ตอบคำถามนี้ .. @ Markasoftware คุณสามารถไปดูเวลาสำหรับตัวคุณเอง ฉันไม่ได้อัปโหลดมากเพียงเพราะฉันไม่ได้ให้รหัส Howver ฉันโพสต์คำตอบในผู้ตอบ 3 คนแรก ..
Afzaal Ahmad Zeeshan

lol จริง ๆ เมื่อฉันไปที่แท็บ "เก่าที่สุด" มันแสดงให้เห็นว่าคำตอบของคุณเก่าที่สุดเป็นอันดับสอง
markasoftware

มันเป็นเพราะความจริงที่ว่ามันไม่ได้ upvoted มาก! ฉันอยู่ที่นี่ทุกครั้งดังนั้นฉันจะโพสต์เมื่อเร็ว ๆ นี้ได้อย่างไร และอันนี้เป็นคำตอบง่ายๆ ดังนั้นคุณสามารถลบ downvote ออกได้ไหม? :)
Afzaal Ahmad Zeeshan

5

หากคุณรวมรูปร่าง CSSกับcontenteditableสิ่งนี้สามารถทำได้ในเว็บเบราว์เซอร์

ก่อนอื่นคุณต้องเปิดใช้งานการตั้งค่าสถานะ: enable-experiment-web-platform-features

จากนั้นรีสตาร์ทเบราว์เซอร์ webkit ของคุณแล้วตรวจสอบFIDDLEนี้!

วิธีนี้จะใช้ได้กับรูปร่างที่ไม่ได้มาตรฐานเช่นกัน

มาร์กอัป

 <div class="shape" contenteditable="true">
    <p>
     Text here
    </p>
  </div>

CSS

.shape{
  -webkit-shape-inside: polygon(71.67px 204.00px,75.33px 316.47px,323.67px 315.47px,321.17px 196.00px,245.96px 197.88px,244.75px 87.76px,132.33px 87.53px,132.50px 202.26px);
  shape-inside: polygon(71.67px 204.00px,75.33px 316.47px,323.67px 315.47px,321.17px 196.00px,245.96px 197.88px,244.75px 87.76px,132.33px 87.53px,132.50px 202.26px);
  width: 400px;
  height: 400px;
  text-align: justify;
  margin: 0 auto;
}

แล้วรูปทรงหลายเหลี่ยมบนโลกเป็นยังไงบ้าง?

ไปที่ไซต์นี้และสร้างรูปร่างที่คุณกำหนดเอง!

หมายเหตุเกี่ยวกับการเปิดใช้งานการตั้งค่าสถานะ: (จากที่นี่ )

ในการเปิดใช้งานโหมดรูปร่างภูมิภาคและเบลนด์:

คัดลอกและวาง chrome: // ค่าสถานะ / # enable-Experimental-web-platform-features ลงในแถบที่อยู่แล้วกด Enter คลิกลิงก์ 'เปิดใช้งาน' ภายในส่วนนั้น คลิกปุ่ม 'เปิดใหม่ทันที' ที่ด้านล่างของหน้าต่างเบราว์เซอร์


4
+1 สำหรับโซลูชัน (มีโครงสร้างที่ดีมีโครงสร้าง) ไม่ว่าจะเป็นมาตรฐานหรือไม่ก็ตาม
rolfl

3
@kinokijuf คุณรู้หรือไม่ว่ามาตรฐานเหล่านี้เป็นอย่างไรในทุกวันนี้ใช่มั้ย ในกรณีนี้ Adobe เกิดข้อเสนอเรื่องรูปร่างขึ้นและ Webkit เป็นสิ่งแรกที่นำมาใช้จนถึงปัจจุบัน การเห็นว่าร่างของบรรณาธิการมาจากเดือนพฤศจิกายนสิ่งนี้อาจไม่สามารถเรียกได้ว่าเป็นส่วนขยายที่เป็นกรรมสิทธิ์และสำหรับทุกสิ่งที่คุณรู้ว่าจะจบลงด้วยการนำไปใช้อย่างกว้างขวางและเป็นมาตรฐานในภายหลัง ในขณะเดียวกันผู้ใช้ที่ไม่ใช่ Webkit จะได้รับสี่เหลี่ยมผืนผ้าเรื่องใหญ่ (Heck, Firefox ยังคงต้องใช้คำนำหน้าสำหรับbox-sizing.)
millimoose

5

คุณสามารถใช้เครื่องมือออกแบบเว็บของ GoogleHTML5-canvas and CSSสำหรับการสร้างรูปทรงที่ซับซ้อนโดยใช้

มากกว่าคุณจะได้รับเครื่องมืออื่น ๆ เช่นเครื่องมือการพิมพ์เพื่อป้อนข้อความภายในรูปร่างเหล่านี้

เนื่องจากไฟล์ที่ส่งออกมีรหัสมากให้ซอของตัวอย่างตัวอย่างที่สร้างขึ้นโดยใช้เครื่องมือ Google Web Designer

ตัวอย่าง FIDDLE >>


1
Fiddle ไม่ทำงานสำหรับฉัน (= ข้อความไม่สามารถแก้ไขได้) บน Chrome 31.0 / Windows 7
Ilmari Karonen

@IlmariKaronen = ข้อความไม่สามารถแก้ไขได้ ??? จริง ๆ แล้วฉันไม่ได้รับ ความต้องการในการทำให้แก้ไขได้คืออะไร?
Prasanth KC

5
คำถามถามหาสิ่งที่ต้องการ<textarea>(เช่นกล่องข้อความที่แก้ไขได้) แต่มีรูปร่างที่ไม่ใช่รูปสี่เหลี่ยมผืนผ้า หากไม่มีส่วนที่ "แก้ไขได้" มีความท้าทายเล็กน้อยที่นี่ - ผู้คนเริ่มทำข้อความแบบต่อเนื่องในรูปแบบ HTML นับตั้งแต่มีการเปิดตัวภาพลอยใน HTML 2.0
Ilmari Karonen

ซอได้รับการอัปเดตด้วยคุณสมบัติที่แก้ไขเนื้อหาได้ ตอนนี้ข้อความภายในคอนเทนเนอร์สามารถแก้ไขได้
Prasanth KC

ในการสาธิตฉันสามารถแก้ไขข้อความที่ต่างกัน 2 ข้อความไม่ใช่ข้อความทั้งหมด 1 ข้อความ ใน Chrome 31.
Nicolas Barbulesco

1

หากไม่ว่าด้วยเหตุผลใดก็ตามคุณต้องสนับสนุนเบราว์เซอร์ที่ไม่มีอยู่จริงcontenteditableคุณอาจทำสิ่งเดียวกันใน JavaScript โดยใช้กิจกรรมแม้ว่านี่จะเป็นวิธีแก้ปัญหาที่ยุ่งมาก

pseudocode:

focused=false;
when user clicks the div
    {
    focused=true;
    }
when user clicks outside the div
    {
    focused=false;
    }
when user presses a key
    {
    if (focused)
    {
    add character of key to div.innerHTML;
    }
    }
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.