Abrir cuadro de diálogo ajax con JavaScript
Al agregar use-ajaxun enlace, podemos abrir un modal utilizando la biblioteca ajax de Drupal según los documentos .
P.ej
<a class="use-ajax"
data-dialog-options="{"width":400}"
data-dialog-type="modal"
href="/node/1">
First article displayed in modal dialog.
</a>
Esto usará la biblioteca ajax para buscar el nodo / 1 y luego mostrarlo en un modal.
También hay una API de diálogo para JavaScript que permite abrir modales usando JavaScript.
P.ej
var myDialog = Drupal.dialog(ADOMElement, settings);
myDialog.show();
El problema con esta API es que necesita pasar un elemento DOM existente.
Mi pregunta es ¿puedo activar la apertura de un modal con JavaScript y actualizar la biblioteca interna de Drupal ajax para recuperar el contenido?
Por ejemplo, ¿puedo hacer algo como esto?
var myDialog = Drupal.dialog('/node/1', {useAjax: true});
myDialog.show();
Podría crear un enlace html según mi primer bloque de código, ocultarlo con css y luego activar un clic en él con JS, pero esto parece un poco hacky: debe haber una manera de activar esta acción usando JS puro.
Respuestas
Puede activar Ajax en javascript personalizado. Consulte Cómo activar Ajax existente sin formulario desde un evento de JavaScript
En su caso, un cuadro de diálogo Ajax:
var ajaxSettings = {
url: '/node/1',
dialogType: 'modal',
dialog: { width: 400 },
};
var myAjaxObject = Drupal.ajax(ajaxSettings);
myAjaxObject.execute();