我有一個contentEditable div
:更改字體大小爲CONTENTEDITABLE DIV
<div id="editor" contentEditable="true"> Enter your text here.. </div>
並有dropdown button
:
<div class="btn-group">
<button class="btn dropdown-toggle" data-toggle="dropdown" title="Taille de police"><i class="fa fa-text-height"></i> <b class="caret"></b></button>
<ul class="dropdown-menu" id="tailles"></ul>
</div>
要與我使用這個腳本項填補這一下拉
//Liste des tailles utilisé
var tailles = [
'Petite (8px)',
'Petite (10px)',
'Petite (12px)',
'Normale (14px)',
'Grande (18px)',
'Grande (24px)',
'Grande (36px)'
];
//Récuperer le drop down du Taille de police
var taillesDropDown = document.getElementById('tailles');
//Population du drop down Taille du police
tailles.forEach(function(taille){
var li = document.createElement('li');
var a = document.createElement('a');
var fontSize = parseInt(/\d+/.exec(taille));
a.style = "font-size:" + fontSize + "px" + ";height:"+(fontSize+4) + "px" + ";padding:6px;";
a.appendChild(document.createTextNode(taille));
a.id = fontSize + "px";
li.appendChild(a);
taillesDropDown.appendChild(li);
});
併爲每個項目分配一個事件我正在使用此腳本:
//Changer la taille du police
//Fonction pour proteger le contentEditable conte la perte du focus
$(function(){
//Selectionner tous les elements du dropdown du taille du police
$('#tailles a')
//mettre un terme à l'événement de mousedown
.on('mousedown', function (e) {
e.preventDefault()
return setTimeout(300)
})
//gérer l'événement clic seulement une fonction que nous pouvons attribuer ce que nous voulons faire quand nous cliquons.
.on('click', function(e){
document.execCommand('fontSize', false, e.currentTarget.id);
console.log(e.currentTarget.id);
})
})
問題是,當我爲了改變所選文本的字體大小在editableContent div
選擇在dropdown
一些項目,字體大小的變化總是要36px
。
我想檢查我的下拉項FireBug
,這是我所得到的:
<li><a id="8px" style="font-size: 8px; height: 12px; padding: 6px;">Petite (8px)</a></li>
<li><a id="10px" style="font-size: 10px; height: 14px; padding: 6px;">Petite (10px)</a></li>
<li><a id="12px" style="font-size: 12px; height: 16px; padding: 6px;">Petite (12px)</a></li>
<li><a id="14px" style="font-size: 14px; height: 18px; padding: 6px;">Normale (14px)</a></li>
<li><a id="18px" style="font-size: 18px; height: 22px; padding: 6px;">Grande (18px)</a></li>
<li><a id="24px" style="font-size: 24px; height: 28px; padding: 6px;">Grande (24px)</a></li>
<li><a id="36px" style="font-size: 36px; height: 40px; padding: 6px;">Grande (36px)</a></li>
所以存在這樣充滿dropdown
,因爲你可以看到id
每個腳本沒有錯誤項目具有應在execCommand
的第三個參數中給出的值。
我還視察我改變它的字體大小的文本:
<font size="7">text</font>
我怎樣才能解決這個問題?
我注意到,當我改變字體大小時,contentEditable使用HTML標籤來做到這一點,也爲顏色和字體名稱,沒有任何方法來強制contentEditable使用css
而不是?
的ID不能以數字開頭,也許這就是導致您的問題。 http://css-tricks.com/ids-cannot-start-with-a-number/ – lefoy
ID's不能以數字開頭,也許這就是導致你的問題的原因。 http://css-tricks.com/ids-cannot-start-with-a-number/ – lefoy
不錯,但ID可能以HTML5中的數字開頭(http://dev.w3.org/html5/markup/global -attributes.html#common.attrs。id) –