add title div; fix a bug that icon didn’t changed while toggling header

This commit is contained in:
houxg
2016-12-05 15:29:09 +08:00
parent ef2b48f648
commit ecad193977
3 changed files with 23 additions and 4 deletions

View File

@@ -6,18 +6,24 @@
<meta name=viewport content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Markdown Editor</title>
<link href="quill.bubble.css" rel="stylesheet">
<style type="text/css">
#title {outline: 0px solid transparent;}
</style>
</head>
<body>
<div id="editor"></div>
<div contenteditable="false" id="title"></div>
<hr/>
<div id="content"></div>
</body>
<script src="quill.js" type="text/javascript"></script>
<!-- Initialize Quill editor -->
<script>
var nativeCallbackHandler;
var titleDiv = document.getElementById('title');
var options = {
theme: 'bubble'
};
var quill = new Quill('#editor', options);
var quill = new Quill('#content', options);
quill.on('text-change', function(delta, oldDelta, source) {
for (var i = 0; i < delta.ops.length; i++) {
var operation = delta.ops[i];
@@ -95,11 +101,13 @@
function enable() {
document.addEventListener("selectionchange", selectionChangeHandler, false);
quill.enable();
titleDiv.setAttribute("contenteditable", true);
}
function disable() {
document.removeEventListener("selectionchange", selectionChangeHandler, false);
quill.disable();
titleDiv.setAttribute("contenteditable", false);
}
function insertImage(title, url) {
@@ -117,5 +125,13 @@
{'link':url});
}
}
function getTitle() {
return titleDiv.innerHTML;
}
function setTitle(title) {
return titleDiv.innerHTML = title;
}
</script>
</html>

View File

@@ -59,12 +59,12 @@ public class RichTextEditor extends Editor implements OnJsEditorStateChangedList
@Override
public void setTitle(String title) {
execJs(String.format(Locale.US, "ZSSEditor.getField('zss_field_title').setPlainText('%s');", HtmlUtils.escapeHtml(title)));
execJs(String.format(Locale.US, "setTitle('%s');", HtmlUtils.escapeHtml(title)));
}
@Override
public String getTitle() {
return HtmlUtils.unescapeHtml(new JsRunner().get(mWebView, "ZSSEditor.getField('zss_field_title').getHTML();"));
return HtmlUtils.unescapeHtml(new JsRunner().get(mWebView, "getTitle();"));
}
@Override

View File

@@ -313,6 +313,9 @@ public class EditorFragment extends Fragment implements Editor.EditorListener {
if (mQuoteBtn != null) {
mQuoteBtn.setChecked(false);
}
if (mHeadingBtn != null) {
mHeadingBtn.setChecked(false);
}
for (Map.Entry<Editor.Style, Boolean> entry : formatStatus.entrySet()) {
boolean enabled = entry.getValue();
switch (entry.getKey()) {