有可能在html内传递带有自函数的链接并从范围传递arg OBJ



 function notifier_ADD(ZZZ) {
   let message = /*html*/`<a href="#" onclick="callback_WithArg_Scoped(ZZZ);">Run JavaScript Code</a>`;
};


在活动中如何通过ZZZ?

onclick="callback_WithArg_Scoped(ZZZ)"

最佳答案

好吧,模板文字:

假设ZZZ是一个字符串。



function notifier_ADD(ZZZ) {
  document.body.innerHTML +=
  `<a href="#" onclick="callback_WithArg_Scoped('${ZZZ}');">Run JavaScript Code</a>`;
}

function callback_WithArg_Scoped(str) {
  console.log(str);
}

notifier_ADD('Ele from SO');





如果ZZZ是对象,则可以创建元素a



function notifier_ADD(ZZZ) {
  var a = document.createElement('a');
  a.href = "#";

  a.addEventListener('click', function() {
    callback_WithArg_Scoped(ZZZ);
  });

  a.appendChild(document.createTextNode('Run JavaScript Code'));

  document.body.appendChild(a);
}

function callback_WithArg_Scoped(obj) {
  console.log(obj);
}

notifier_ADD({message: 'Ele from SO'});





或者,您可以使用JSON.stringify()JSON.parse()(这适用于现代浏览器):



function notifier_ADD(ZZZ) {
  document.body.innerHTML +=
  `<a href="#" onclick="callback_WithArg_Scoped('${encodeURIComponent(JSON.stringify(ZZZ))}');">Run JavaScript Code</a>`;
}

function callback_WithArg_Scoped(obj) {
  console.log(JSON.parse(decodeURIComponent(obj)));
}

notifier_ADD({message: "Ele from SO"});

09-25 18:04