Javascript 使用document.execCommand()将文本设为粗体将刷新页面
我想做的事 当我点击加粗按钮时,我正试图将一些文本加粗。这将触发一个调用execCommand函数的函数。。。不幸的是,当我点击该按钮时,整个页面都刷新了,我丢失了iframe中的所有文本 我可以看到文本在瞬间变为粗体,然后页面重新加载 我的代码Javascript 使用document.execCommand()将文本设为粗体将刷新页面,javascript,iframe,wysiwyg,Javascript,Iframe,Wysiwyg,我想做的事 当我点击加粗按钮时,我正试图将一些文本加粗。这将触发一个调用execCommand函数的函数。。。不幸的是,当我点击该按钮时,整个页面都刷新了,我丢失了iframe中的所有文本 我可以看到文本在瞬间变为粗体,然后页面重新加载 我的代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
</head>
<body onLoad="enableEditMode();">
<div class="container">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<h2>My Text Editor</h2>
<form class="" action="index.html" method="post">
<div class="form-group">
<label for="title">Title</label>
<input class="form-control" type="title" name="title" value="">
</div>
<div class="form-group">
<div class="" id="toolbar">
<button onClick="execCmd('bold')"><i class="fa fa-bold"></i></button>
</div>
<iframe class="form-control" src="" width="" height="" name="richTextField" style="width:100%;height:100%"></iframe>
</div>
<button class="btn btn-default btn-block" type="submit" name="button">Go!</button>
</form>
</div>
</div>
</div>
<script>
/**
*
*/
function enableEditMode(){
richTextField.document.designMode = 'On';
}
/**
*
*/
function execCmd(command){
richTextField.document.execCommand(command, false, null);
}
</script>
</body>
</html>
我的文本编辑器
标题
走!
/**
*
*/
函数enableEditMode(){
richTextField.document.designMode='On';
}
/**
*
*/
函数execCmd(命令){
richTextField.document.execCommand(command,false,null);
}
我的问题
如何在此处加粗并保留文本?找到了我的答案:只需在按钮上添加一个类型,以防止它们自动提交表单
<button onClick="execCmd('bold')" type="button"><i class="fa fa-bold"></i></button>
我认为这个用法是错误的,您可以先设置一个变量
var rtField = document.getElemetByID('richTextField')
请不要在函数中!然后将eventlistener添加到更改文本的按钮
var btn = document.getElementByID('button')
btn.addEventListener('click', function (event) {
rtField.style.fontWeight = 'bold';
}
应该有用。好建议,但我找到了下面问题的答案。。。但是很好的建议,谢谢!!