使用内联参数触发 javascript 事件

Triggering a javascript event with inline parameters

我的网站上有一个表单,通过单击 link 提交。我正在尝试创建一个自定义上下文菜单,以便用户可以根据需要在新选项卡中打开提交的表单。因为页面是用cgi动态生成的,每次函数的参数都不一样。我想在将属性 target="_blank" 添加到表单元素后使用这些参数触发函数。

我可以使用 document.getElementById("...").onclick 访问参数,然后使用正则表达式提取它们。但这似乎过于复杂。我觉得必须有一种方法可以说 "do what you would have done if someone had left-clicked this a element"。这是一些简化的代码:

<a id = "link" style = "cursor:pointer" onclick = "postform('1')">link</a>
<FORM id = "remote"><input id = "input" type = "hidden" name = "firstkey" value = ""></FORM>

我把 JS 放在一个单独的文件中,它基本上说:

function postform(valueone) {
document.getElementById("input").value = valueone;
document.getElementById("remote").submit();
}

我现在可以在新标签页中打开的是:

function contextmenu() {
  var parameters =document.getElementById("newtab").onclick;
  //regexes go here
  postform(parameters);
 }

我想问的是,有没有一种方法可以在一两行中替换我在 contextmenu 函数中所做的事情,这将触发附加到 link 及其参数的 onclick 事件?

您可以使用节点的点击方法以编程方式触发节点的点击事件。

因此对于 id 'newtab' 的元素:

document.getElementById("newtab").click();

*注意:将其包裹在一些错误检查中,以防由于某种原因找不到节点。