CKEditor ป้องกันการลบแอตทริบิวต์ id

ใน CKEditor ฉันกำลังพยายามป้องกันการลบแอตทริบิวต์ id ออกจากแท็ก html เช่น:

<p id='hello'>Hello</p>

แต่การกำหนดค่า ckeditor นี้ไม่ทำงาน และฉันไม่พบวิธีแก้ไขปัญหาอื่นใดเกี่ยวกับปัญหานี้

<script>
    $(function () {
        CKEDITOR.replace('description', {
            allowedContent: true,
            autoGrow_onStartup: true,
            extraAllowedContent: '*[id]',
        });
    });
</script>

คุณช่วยฉันแก้ไขปัญหานี้ได้ไหม?


person DolDurma    schedule 28.05.2018    source แหล่งที่มา


คำตอบ (1)


ก่อนอื่นเลย การใช้ allowedContent: true และ extraAllowedContent: '*[id]' ไม่สมเหตุสมผล ตัวเลือกแรกปิดใช้งาน ACF ที่อนุญาตทุกอย่างในขณะที่ตัวเลือกที่สองขยายออกไป มันไม่สมเหตุสมผลเลยที่จะอนุญาตเนื้อหาเพิ่มเติมหากทุกอย่างได้รับอนุญาตแล้ว คุณควรใช้หนึ่งในสองตัวเลือกนี้ ขึ้นอยู่กับว่าคุณต้องการเปิด ACF หรือไม่

แม้ว่าการวาง HTML เช่น <p id='hello'>Hello</p> ในโหมดซอร์สแล้วสลับไปใช้ wysiwyg และกลับสู่ซอร์สจะทำให้แอตทริบิวต์ id ยังคงอยู่ (เช่นเดียวกับการกำหนดค่าปัจจุบันของคุณ) คุณจะไม่ได้รับผลลัพธ์เดียวกันเมื่อคุณคัดลอก/วางองค์ประกอบดังกล่าว โปรดจำไว้ว่าตามข้อกำหนด HTML แอตทริบิวต์ id จะต้องไม่ซ้ำกัน ดังนั้นคุณจึงไม่สามารถมี <p id='hello'>Hello</p> จำนวนมากภายในพื้นที่เนื้อหาตัวแก้ไข (เอกสาร) ในกรณีดังกล่าวเอดิเตอร์จะลบแอ็ตทริบิวต์ id ออกโดยอัตโนมัติ เพื่อไม่ให้มีการทำซ้ำ และไม่มีวิธีปิดใช้งาน

หากคุณต้องการระบุองค์ประกอบโดยใช้ id เดียวกัน ฉันขอแนะนำให้ใช้แอตทริบิวต์ data-* หรือคลาส CSS แทน (องค์ประกอบจะไม่ถูกลบออกระหว่างการคัดลอก/วาง) หากข้อกำหนดของคุณคือทุกองค์ประกอบควรมี id คุณสามารถใช้ วาง ตัวจัดการเหตุการณ์ที่คุณสามารถตรวจสอบได้ว่าองค์ประกอบในข้อมูลที่วางมีแอตทริบิวต์ id หรือไม่ และเพิ่มด้วยค่าสุ่มบางส่วนหากไม่มี

person j.swiderski    schedule 29.05.2018
comment
ฉันกำลังพยายามสร้างลิงก์ภายในแบบง่ายๆ จากเนื้อหา - person DolDurma; 30.05.2018
comment
โปรดให้คำอธิบายโดยละเอียดและทางเทคนิคเพิ่มเติมเกี่ยวกับสิ่งที่คุณกำลังพยายามดำเนินการ เนื่องจากข้อมูลข้างต้นไม่ได้ช่วยอะไรมากนัก นอกจากนี้ยังไม่ได้เปลี่ยนความจริงที่ว่า id จะต้องไม่ซ้ำกันทั่วทั้งเอกสาร ดังนั้นคุณจึงไม่สามารถคัดลอก/วางองค์ประกอบต่างๆ ที่มี id เหมือนกันใน CKEditor ได้ - person j.swiderski; 01.06.2018