當您使用所見即所得編輯器,並且選擇文本並應用(例如對其加粗)時,瀏覽器將使用<span style="font-weight:bold">
標記(假設您已調用document.execCommand("useCSS", false)
和/或document.execCommand("styleWithCSS", true)
)。現在,如果你選擇的是一個子集,並重新申請大膽,將原來的大膽標籤拆分成類似下面的應用自定義樣式時拆分HTML標記
<span style="font-weight:bold">Something</span>
Not selected
<span style="font-weight:bold">Selected</span>
在產品我的工作,我們支持一系列的所見即所得功能,包括一些不直接受execCommand支持的方法(例如添加文本的級別(類)以應用font-family和font-size),並且我們遇到嵌套標記的問題。有沒有辦法告訴瀏覽器從樣式中移除當前範圍,並且基本上關閉之前的標籤並在內容之後打開新的標籤?
我不會立即在execCommand reference中看到一些東西。
我們使用rangy 1.2.3取得了一些成功,但我不知道是否有一些命令我錯過了。
由於添加了多個樣式,因爲在上面的示例中添加了粗體和斜體,然後在中間刪除粗體會生成三個跨度,兩個粗體和斜體文本,中間只有斜體。
目前,我們限制使用我們的編輯器到Chrome。
是的,強制用戶使用標記將是一個更穩定的解決方案,但使用該應用程序的人並不熟悉這一點,所以我們必須提供一個所見即所得的編輯器來創建他們的材料 –
我打算編寫一個模塊在Rangy做到這一點,去年的時間確實相當長,但實際上它不太可能準備好幾個月。 –
您是否嘗試過'removeFormat'命令?這是你在這種情況下唯一可以處理的事情。 – skyline3000