Получение возврата в формате json для редактора html в FileMaker

#filemaker

#filemaker

Вопрос:

Я использую HTML-форму summernotes в решении FileMaker для написания электронных писем. первоначально у меня была кнопка сохранения для переноса uri html в поле, а затем отправки его по электронной почте с помощью клиентских скриптов. Однако пользователям (и мне …) не нравится нажимать «сохранить», а затем «отправить».

Мне интересно, есть ли у кого-нибудь идеи о том, как это автоматизировать. Однако я попытался установить функцию сохранения на повторение в 1 секунду, что останавливает ввод текста и удаляет курсор. Я думаю либо каким-то образом извлечь данные через json, либо, в идеале, каким-то образом я могу запросить их с помощью моего скрипта отправки FileMaker?

 <html lang="en">
<head>
  <meta charset="UTF-8">
  <title>HTML Editor</title>
<!-- include libraries(jQuery, bootstrap) -->
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

<!-- include summernote css/js -->
<script src="https://cdn.jsdelivr.net/npm/summernote@0.8.16/dist/summernote.min.js"></script>
<!--  <link href="http://netdna.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.css" rel="stylesheet">
  <link href="http://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.11/summernote.css" rel="stylesheet"> -->

<link href="https://cdn.jsdelivr.net/npm/summernote@0.8.16/dist/summernote.min.css" rel="stylesheet">
<link href="https://stackpath.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">

    <script>
    var intervalID;
    
    function autoSave() {
        intervalID = setInterval(saveText, 1000);
        }
        
    function saveText() {
                //$('#summernote').summernote('code', 'code');
                    //window.alert('save changes');
                    /* Prep the URL to use for the hand-off to FM. */
                    var fullURL = '[[SAVEURL]]amp;param='   encodeURIComponent ($('#summernote').summernote('code'));
                    /* Send the data to FM. */
                    window.location = fullURL;
                    return false;
            }
            
    </script>
</head>


    


<body onload ="autoSave();">
    <div id="summernote">[[CONTENT]]</div>
    <script>

    }


    $(document).ready(function() {
        $('#summernote').summernote({
            height: 300,
            tabsize: 2,
            toolbar: [
            // [groupName, [list of button]]
            ['style', ['style','bold', 'italic', 'underline', 'clear']],
            //['font', ['strikethrough', 'superscript', 'subscript']],
            //['fontsize', ['fontsize']],
            ['color', ['color']],
            //['para', ['ul', 'ol', 'paragraph']],
            //['height', ['height']],
            ['insert', ['link']],
            //['insert', ['link','hr','table']],
            //['misc',['codeview']],
            ['mybutton',['save']]
            ],
            buttons: {save: SaveButton}
        });
    });


</script>
</body>
</html>
 

Ответ №1:

Вместо передачи закодированного HTML в качестве параметра в URL (amp;param=…), что приводит к перезагрузке страницы и, следовательно, к потере фокуса, попробуйте передать параметр в качестве привязки (#…).

Например, страница не будет перезагружаться, и фокус должен оставаться. Конечно, вам придется соответствующим образом настроить код чтения параметров.

В качестве альтернативы, если у вас есть FileMaker 19, вы можете использовать FileMaker.Выполните Script или FileMaker.Выполните функцию scriptwithoption для передачи значения непосредственно в скрипт.

Комментарии:

1. Спасибо за информацию. К сожалению, FMP17. Я полностью разбираюсь в html здесь и задаюсь вопросом, не могли бы вы дать мне какие-либо указания о том, где искать какое-либо чтение по этому вопросу?