修改頁面內容- HTML5 中的 execCommand 指令

前面提到的 contenteditable 與 designMode 可以搭配 HTML5 中的 execCommand 指令會更好玩,用來讓網頁選取位置產生變化,如: 文字處理(複製、貼上、剪下)、排版(對齊、編號、上下標)、變更字型與大小等等...

完整參數: document.execCommand(aCommandName, aShowDefaultUI, aValueArgument)
說明:

  • aCommandName: 要用來改變的內容
  • aShowDefaultUI(optional): 是否顯示 UI(boolean)
  • aValueArgument(optional): 對應 aCommandName 要設置的值

當我們把區塊設定為可以編輯時,就可以利用 execCommand 來修改內容了。

這裡我們準備一個可以編輯的區塊來試看看,把要編輯的區塊加上 contenteditable:

 

接著在頁面上增加兩個按鈕,分別來做把選取內容加粗跟變色,然後再點下去的時候執行 document.execCommand

$("#color").click(function () {
        document.execCommand('foreColor', false, "blue");
    })
    $("#bold").click(function () {
        document.execCommand('bold');
    })

這樣我們就能在上面那個看到當我們把內文選取起來,只要點變色會變粗,選取的內容就會跟著變化了。

execCommand 可以使用的值有以下這些:

  • 前景色: document.execCommand('ForeColor',false,'#ff0000');
  • 背景色: document.execCommand('BackColor',false,'#ff0000');
  • 文字剪下: document.execCommand('Cut');
  • 文字複製: document.execCommand('Copy');
  • 文字貼上: document.execCommand('Paste');
  • 對齊左: document.execCommand('justifyleft');
  • 對齊中: document.execCommand('justifyleft');
  • 對齊右: document.execCommand('justifyleft');
  • 等寬對齊: document.execCommand('justifyFull');
  • 粗體字: document.execCommand('bold');
  • 斜體字: document.execCommand('italic');
  • 底線: document.execCommand('underline');
  • 刪除線: document.execCommand('strikethrough');
  • 變更字型: document.execCommand('fontname');
  • 變更大小: document.execCommand('fontsize');
  • 右縮: document.execCommand('indent');
  • 左縮: document.execCommand('outdent');
  • 編號: document.execCommand('orderedlist');
  • 標號: document.execCommand('unorderedlist');
  • 建立連結: document.execCommand('createlink');
  • 取消連結: document.execCommand('unlink');

要看更完整的可以看Document.execCommand()

如果增加的內容要讓使用者可以自訂,可以參考以下做法(用 createlink 當範例)

var linkURL = prompt('Enter a URL:', 'http://');
document.execCommand('createlink', false, linkURL);

 

看起來應該是能夠自己製作一個編輯器,不過我們應該也都很習慣用一些現成的外掛了,這個 API 就用來參考一下吧。

 

課程推薦

AI工作術全面學習實戰營:6 堂精選課程,學會最好用 AI 工具,翻轉你的人生

AI工作術全面學習實戰營:6 堂精選課程,學會最好用 AI 工具,翻轉你的人生

《PChome雜誌》攜手 5 位在 AI 領域的專業講師,打造上述 6 堂實用課程,教你學會時下最好用的 AI 工具,導入生成式 AI 來產製工作內容,改造並升級你的工作流程。

輸入折扣碼 ZERO2024 還可以額外獲得 NT$400 優惠喔。

HTML與SEO實戰應用—並以ChatGPT助力提升網站品質與流量

HTML與SEO實戰應用—並以ChatGPT助力提升網站品質與流量

本課程專為希望深入了解 HTML 並有效結合 SEO 策略的學員設計。我們將重點放在 HTML 的深度學習與應用上,同時穿插介紹如何透過搜索引擎優化提升網站能見度。透過即時互動式的直播教學,加上 ChatGPT 的輔助,您將學習到如何建立一個結構優良、美觀且符合 SEO 標準的網站。這不僅會提升網站的用戶體驗,還會大幅提高網站的搜索引擎排名,進而增加訪客流量和潛在客戶。
用AI強化職場競爭力 ChatGPT、Midjourney從入門到精通

用AI強化職場競爭力 ChatGPT、Midjourney從入門到精通

在快速變遷的職場中,提升競爭力成為關鍵。透過引領潮流的AI技術,ChatGPT和Midjourney將助您勇攀高峰。無論您是AI新手還是專家,這個課程將引導您從入門到精通,解密AI的奧秘,並學習如何運用於職場。
GitHub Copilot AI 程式碼編輯工具應用實務班

GitHub Copilot AI 程式碼編輯工具應用實務班

讓學員瞭解有效地使用該工具來加速開發流程、提高程式碼品質和生產力。課程重點放在以 JavaScript 程式語言為例,介紹 Copilot 的基本原理、使用方法和最佳實踐。

輸入折扣碼 TC1456JA 還可以額外獲得 NT$500 優惠喔。

ChatGPT X Clipchamp AI 生成影片、配音與字幕應用實戰班

ChatGPT X Clipchamp AI 生成影片、配音與字幕應用實戰班

掌握Clipchamp AI的操作技巧,靈活運用Clipchamp AI進行影片編輯和創作,實現創意表達和傳播目的。

輸入折扣碼 TC1451JAN 還可以額外獲得 NT$500 優惠喔。

如何串接多種數位工具資訊?Looker Studio 資料視覺化實戰班|GoogleAds x FB廣告 x GA流量數據

如何串接多種數位工具資訊?Looker Studio 資料視覺化實戰班|GoogleAds x FB廣告 x GA流量數據

Looker Studio除了可協助使用者監控網站流量、廣告成效、選擇匯入資源的管道之外,還可以將數據資料多平台整合、數據報表即時更新、數據範本可重複套用的效益,透過自動化系統,將數據全部匯入同一個報表平台,是企業不可或缺的重要工具。

輸入折扣碼 TC1270JIA 還可以額外獲得 NT$500 優惠喔。

和我們交流

加入我們的社群,裡面會有一些技術的內容、有趣的技術梗,以及職缺的分享,歡迎和我們一起討論。