Tengo una plantilla de hoja de tomillo que se parece a:

<body>

<div id="layout">
    <!-- Menu toggle -->
    <a href="#menu" id="menuLink" class="menu-link">
        <!-- Hamburger icon -->
        <span></span>
    </a>

    <!-- Menu -->
     <div th:replace="laberint/common/menu :: [//div[@id='menu']]"></div>

Y el menú se ve así:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
 <!-- Menu -->
    <div id="menu" oncontextmenu='return false' ondragstart='return false' onmousedown='return false'>
     ......

     <script th:inline="javascript">
     alert ('lalala');
     </script>



    </html>

Pero no veo la alerta cuando cargo la página

1
Salvador Borés 25 feb. 2018 a las 11:33

3 respuestas

La mejor respuesta

Funciona después de ponerlo dentro de un div

 <script th:inline="javascript">
     alert ('lalala');
     </script>
 </div>
    </html>
0
Salvador Borés 28 feb. 2018 a las 12:26

La documentación de Thymeleaf sugiere utilizar un pop emergente en lugar de una alerta de JavaScript:

Este es un ejemplo de un fragmento de alerta reutilizable usando layout: fragment (task / alert.html):

<!DOCTYPE html>
<html>
  <body>
    <th:block layout:fragment="alert-content">
        <p>Duis mollis, est non commodo luctus, nisi erat porttitor ligula...</p>
        <p>
            <button type="button" class="btn btn-danger">Take this action</button>
            <button type="button" class="btn btn-default">Or do this</button>
        </p>
    </th:block>
  </body>
</html>

La llamada del fragmento anterior puede verse de la siguiente manera (task / list.html):

<div layout:insert="~{task/alert :: alert}" th:with="type='info', header='Info'" th:remove="tag">
    <!--/* Implements alert content fragment with simple content */-->
    <th:block layout:fragment="alert-content">
        <p><em>This is a simple list of tasks!</em></p>
    </th:block>
</div>

O:

<div layout:insert="~{task/alert :: alert}" th:with="type='danger', header='Oh snap! You got an error!'" th:remove="tag">
    <!--/* Implements alert content fragment with full-blown HTML content */-->
    <th:block layout:fragment="alert-content">
       <p>Duis mollis, est non commodo luctus, nisi erat porttitor ligula...</p>
        <p>
            <button type="button" class="btn btn-danger">
            Take this action</button>
            <button type="button" class="btn btn-default">
            Or do this</button>
        </p>
    </th:block>
</div> 

En este caso, todo el contenido de alerta de la plantilla de tarea / alerta (/WEB-INF/views/task/alert.html) será reemplazado por HTML personalizado arriba.

Entonces, el ejemplo en el OP podría verse así:

<div layout:insert="~{task/alert :: alert}" th:with="type='info', header='lalala'" th:remove="tag">
        <th:block layout:fragment="alert-content">
            <p>La la la</p>
        </th:block>
    </div>
2
Yvonne Aburrow 1 mar. 2018 a las 11:23
 <script type="text/javascript" th:inline="javascript">

Reemplace su etiqueta de script con el código anterior y funciona bien

0
Berhanu Tarekegn 27 feb. 2018 a las 13:52