Estoy tratando de codificar js para un diálogo html que funciona con variables, por lo que es reutilizable y no tengo que escribir el mismo código redundante cada vez que creo un diálogo. Si el usuario hace clic en "Aceptar", entonces foo = verdadero, y si el usuario hace clic en "CANCELAR", entonces foo = falso. Quiero asignar un nombre de función a una variable js ("run_me_true") y otra variable ("run_me_false"), ambas basadas en si foo es verdadero o falso. Y luego ejecute esa función contenida en la(s) variable(s) "run_me".
function IT_true () {alert ("this is true");} function IT_false () {alert ("this is false");} // MAIN FUNCTION function clear_data() { foo = false; glass = 'ERASE the current player list?'; document.getElementById('show_confirm').innerHTML = glass; var run_me_true = window['IT_true']; var run_me_false = window['IT_false']; openCONFIRM();} // OPEN AND CLOSE DIALOG function openCONFIRM() { var dialogCONFIRM_O = document.getElementById("confirm_me"); dialogCONFIRM_O.showModal(); } function closeCONFIRM() { var dialogCONFIRM_C = document.getElementById("confirm_me"); dialogCONFIRM_C.close(); } <!-- CONFIRM DIALOG --> <div> <dialog id="confirm_me"> <h3 id = "show_confirm"></h3> <button onclick = "window[run_me_true]();" >OK</button> <button onclick= "window[run_me_false]();" >CANCEL</button> </dialog></div> <!-- END CONFIRM DIALOG-->La pregunta es un poco extraña, pero supongo que te refieres a esto:
function your_func(){ // your code… } var run_me_true = window['your_func']; run_me_true();Dado que 'ventana' es técnicamente un objeto, puede acceder a cualquier variable (incluidas las funciones) usando los corchetes con un objeto. Simplemente ponga el nombre de la variable entre comillas dentro de los corchetes
<button onclick = "window[run_me_true]();" >OK</button> <button onclick= "window[run_me_false]();" >CANCEL</button>