我有一个onlick函数,可切换document.execCommand('insertUnorderedList')单击该按钮将Unordered List切换到其原始状态时,它将span标记应用于不会消失的HTML,除非我删除所有文本和退格键。这是一个问题,因为如果我不手动清除文本,而是应用H1,则跨度的内置字体大小将覆盖我的CSS,并且所应用的字体大小要比当前将H1设置为CSS。
我试图将span设置为我想要的CSS字体大小,但是由于它是通过execCommand动态呈现的,因此它不会读取我的CSS。我尝试在切换完成后使用document.execCommand('div',format,false)清除格式。我使用的是true布尔值来在样式更改之间进行切换。它起作用的唯一实例是当我输入一些文本时,将UL列表从true切换为false,然后从那里更改为H1,效果很好。但是我担心用户何时两次按下UL按钮,然后尝试转到H1并获得小号粗体字体,而不是全尺寸H1。
let h1Size = true;
let h3Size = true;
let ulBullets = true;
function callResizeH1(){
document.getElementById('h1').addEventListener("click",function () {
if(h1Size == true && ulBullets== true){
h1Size = false;
h3Size = true;
ulBullets = true;
document.execCommand( 'formatBlock',false,'<h1>')
} else if(h1Size === true && ulBullets === false) {
h1Size = false;
h3Size = true;
ulBullets = true;
document.execCommand('insertUnorderedlist', false, 'div')
document.execCommand( 'formatBlock',false,'<h1>')
}
else {
h1Size = true;
h3Size = true;
ulBullets = true;
document.execCommand('formatBlock', false, 'div')
}
})
}
callResizeH1();
function noH1ResizeForUl() {
document.getElementById("bullet-list").addEventListener("click",
function (){
if (ulBullets || h3Size == false || ulBullets === true && h1Size
== false) {
ulBullets = false;
h1Size = true;
h3Size = true;
document.execCommand('formatBlock', false, 'div')
document.execCommand('insertUnorderedlist', false, 'div')
document.execCommand('formatBlock', false, 'div')
}
else{
ulBullets = true;
h1Size = true;
h3Size = true;
document.execCommand('formatBlock', false, 'div')
document.execCommand('insertUnorderedlist', false, 'div')
document.execCommand('formatBlock', false, 'div')
return;
}
})
}
noH1ResizeForUl()
我希望当ulBillets,h1Size和h3Size设置为true时,再次按h1时,我会得到所需的H1。取而代之的是,保留span标签并将其设置为12pt,而不是我在CSS中定义的18pt。