Score:0

how to add javascript to an article?

ธง cn

just installed a stock Drupal 9.2.2 core, trying to create an article with the /node/add/article editor, how do i add javascript to the article? enter image description here

Kevin avatar
in flag
คุณเพิ่มด้วยวิธีใดวิธีหนึ่งที่อธิบายไว้ในเอกสารประกอบ การวางลงใน WYSIWYG (สันนิษฐานจากภาพหน้าจอ) ไม่แนะนำและไม่สนับสนุนโดยการกรองอินพุตหลักของ Drupal
cn flag
@Kevin อธิบายไว้ในเอกสารประกอบที่ไหน ฉันเห็นบทความเกี่ยวกับวิธีเพิ่มจาวาสคริปต์ในโมดูล หรือวิธีเพิ่มจาวาสคริปต์ในธีม แต่ไม่เห็นอะไรเลยเกี่ยวกับวิธีเพิ่มลงในบทความ เดาว่าฉันสามารถแฮ็กเกอร์ได้ ala "สร้างโมดูลเฉพาะสำหรับบทความนี้" หรืออะไรทำนองนั้น แต่ฉันไม่เห็นเอกสารใด ๆ เกี่ยวกับวิธีเพิ่มจาวาสคริปต์ไปยังบทความโดยเฉพาะ .. ?
Kevin avatar
in flag
https://www.drupal.org/docs/creating-custom-modules/adding-stylesheets-css-and-javascript-js-to-a-drupal-module
Kevin avatar
in flag
บทความเป็นเพียงเนื้อหาประเภท คุณสามารถใช้ hook ในโมดูลหรือธีมที่จะแนบ Javascript จากไลบรารีที่กำหนดไปยังประเภทโหนดนั้น https://drupal.stackexchange.com/questions/226861/how-to-attach-a-library-to-a-specific-content-type
hotwebmatter avatar
nr flag
ฉันสังเกตเห็นว่าสิ่งนี้ได้รับการลงคะแนนและลงคะแนน ฉันคิดว่ามันเป็นคำถามที่ถูกต้องสำหรับฟอรัมนี้ นักพัฒนาเริ่มใช้ Drupal มาจากภูมิหลังที่หลากหลาย และผู้ที่มีประสบการณ์ในการใช้ JavaScript เป็นหลักอาจไม่เข้าใจในทันทีว่าทำไมโปรแกรมแก้ไข WYSIWIG ของ Drupal จึงปิดตัวลงอย่างเข้มงวดเช่นนี้
Score:2
ธง nr

เนื่องจาก @เควิน ที่กล่าวถึงในความคิดเห็นด้านบน คุณกำลังเข้าใกล้สิ่งนี้จากมุมที่ไม่ถูกต้อง

โดยการออกแบบ ใช้ Drupal core (ตั้งแต่ Drupal 5 เป็นอย่างน้อย) ตัวกรองข้อความและรูปแบบการป้อนข้อมูล เพื่อฆ่าเชื้อ HTML ที่เพิ่มโดยผู้ใช้ในโปรแกรมแก้ไข WYSIWIG เช่น CKEditor เริ่มต้น

Drupal เวอร์ชันก่อนหน้าได้รับอนุญาตมากกว่าในเรื่องนี้ แต่แพตช์ความปลอดภัยเป็นเวลาหลายปีสำหรับการใช้ประโยชน์จากสคริปต์ข้ามไซต์ทำให้การแทรก JS แบบอินไลน์ในลักษณะนี้เป็นเรื่องยากมาก และด้วยเหตุผลที่ดี

ด้วย Drupal คุณไม่ได้แค่พูดว่า "ฉันเชื่อว่าตัวเองจะเพิ่ม JS ในบทความนี้" แต่คุณกำลังพูดว่า "ฉันเชื่อใจผู้ใช้ทุกคนที่มีบทบาทอนุญาตให้พวกเขาใช้ตัวกรองข้อความนี้" การสร้างตัวกรองข้อความที่ไม่ปลอดภัยนั้นไม่ใช่เรื่องง่ายอีกต่อไป หากเป็นเช่นนั้น คุณควรจำกัดการใช้งานไว้เฉพาะผู้ใช้ที่เชื่อถือได้และมีบทบาทผู้ดูแลระบบเท่านั้น

สำหรับ Drupalist ที่มีประสบการณ์ ไม่ใช่เรื่องใหญ่ที่จะแนบเนื้อหา JavaScript เข้ากับอาร์เรย์การแสดงผล เนื้อหา CSS และ JS ได้รับการจัดการใน Drupal โดยการสร้าง ห้องสมุด ซึ่งสามารถแนบกับอาร์เรย์เรนเดอร์ของ Drupal ได้หลายวิธี โดยใช้โมดูลแบบกำหนดเองหรือธีมแบบกำหนดเอง ผ่านโค้ด PHP หรือเทมเพลต Twig

(หากคุณกำลังสร้างไซต์ Drupal ปราศจาก ธีมที่กำหนดเอง คุณอาจต้องพิจารณาใหม่ คุณสามารถสร้าง ธีมย่อย ไม่ว่าธีมปัจจุบันของคุณคืออะไร เพื่อให้คุณสามารถแก้ไขสิ่งต่างๆ เช่น ไลบรารี JS และเทมเพลต Twig ได้อย่างง่ายดาย)

อย่างไรก็ตาม เราเข้าใจว่าคุณลังเลที่จะเรียนรู้การพัฒนาโมดูลหรือธีมแบบกำหนดเองเพียงเพื่อเพิ่ม JavaScript เล็กน้อย

ฟอรัมนี้ควรใช้สำหรับตอบคำถามเกี่ยวกับ Drupal core ไม่แนะนำโมดูลร่วม อย่างไรก็ตาม มีโมดูลค่อนข้างใหม่ที่อาจตรงกับความต้องการของคุณ:

ส่วนประกอบ

จากหน้าโครงการของโมดูลส่วนประกอบ:

การเพิ่มส่วนประกอบ JS ลงในไซต์ Drupal ของคุณง่ายขึ้นมาก เพียงรวมส่วนประกอบ JS ของคุณ (ประเภทใดก็ได้) กับ *.component.yml และใส่ไว้ในโมดูลหรือธีมของคุณ ตอนนี้ส่วนประกอบของคุณจะพร้อมใช้งานใน Drupal เป็นบล็อก - โดยอัตโนมัติ!

เป็นที่ยอมรับว่ามันไม่ง่ายเหมือนการวางบางสิ่งในฟิลด์ WYSIWYG แต่นั่นไม่เคยได้ผลอยู่ดี (เพราะความปลอดภัย) คุณยังคงต้องเริ่มต้นด้วยการสร้างโมดูล ธีม หรือธีมย่อยที่กำหนดเอง เพื่อให้คุณสามารถเพิ่ม ส่วนประกอบ JS ของคุณไปที่ component.yml ไฟล์. แต่ถ้าคุณมาจากความคิดของนักพัฒนา JS วิธีนี้จะช่วยให้คุณเขียน JS และติดไว้ในบล็อกของหน้า

หมายเหตุด้านความปลอดภัยที่จำเป็น:

โครงการนี้ไม่ครอบคลุมโดยนโยบายคำแนะนำด้านความปลอดภัย ใช้ความเสี่ยงของคุณเอง! อาจมีช่องโหว่ที่เปิดเผยต่อสาธารณะ

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

ติดตาม: JavaScript แบบอินไลน์ เป็น อนุญาตในโปรแกรมแก้ไข Gutenberg จาก WordPress และนั่นคือเหตุผลที่ @brown-paul แนะนำให้ใช้ บรรณาธิการ Gutenberg ใน Drupalซึ่งอาจง่ายกว่าสำหรับคุณหากคุณมาจากพื้นหลังของ WordPress

cn flag
ขอบคุณ! ตรวจสอบโมดูลส่วนประกอบ btw ``` เป็นที่ยอมรับว่ามันไม่ง่ายเหมือนการวางบางอย่างในฟิลด์ WYSIWYG แต่นั่นก็ไม่มีทางเป็นไปได้อยู่ดี (เพราะความปลอดภัย)``` - การเปรียบเทียบที่น่าสนใจ WYSIWYG ของ WordPress อนุญาตสิ่งนี้ มันมีบางอย่างที่เรียกว่า ` บล็อก HTML แบบกำหนดเอง' ซึ่งคุณสามารถแทรก HTML อะไรก็ได้ที่คุณต้องการ รวมถึงจาวาสคริปต์
hotwebmatter avatar
nr flag
ใช่ มันเป็นปรัชญาที่แตกต่างกัน ด้วย Drupal คุณไม่ได้แค่พูดว่า "ฉันเชื่อว่าตัวเองจะเพิ่ม JS ในบทความนี้" แต่คุณกำลังพูดว่า "ฉันเชื่อใจผู้ใช้ทุกคนที่มีบทบาทอนุญาตให้พวกเขาใช้ตัวกรองข้อความนี้" _is_ นี้อนุญาตใน Gutenberg และนั่นคือเหตุผลที่ @brown-paul แนะนำให้ใช้ [the Gutenberg editor](https://www.drupal.org/project/gutenberg) ใน Drupal ซึ่งอาจง่ายกว่าสำหรับคุณหากคุณ มาจากพื้นหลัง WP
hotwebmatter avatar
nr flag
@hanshenrik คุณทำงานนี้ได้ไหม ถ้าเป็นเช่นนั้น คุณใช้วิธีใด
cn flag
ฉันไปกับบรรณาธิการ Gutenberg; คุณสามารถเพิ่มการกล่าวถึง Gutenberg ในคำตอบของคุณได้ไหม?
hotwebmatter avatar
nr flag
แน่นอน! โดยปกติฉันจะไม่ทำแบบนั้นเพราะมีผู้ใช้คนอื่นแนะนำก่อน และฉันก็ไม่อยากขโมยกรรมนั้นจาก @brown-paul -- แต่ดูเหมือนว่าเขาจะลบคำตอบของเขา ฉันก็อาจจะทำเช่นกัน! :)
hotwebmatter avatar
nr flag
@hanshenrik ฉันอัปเดตคำตอบเพื่อรวมลิงก์ไปยังโมดูล Gutenberg :)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา