如何在js中修改oncontextmenu

时间:2015-02-14 10:43:50

标签: javascript

我正在尝试更改div的现有“oncontextmenu”。

div:

<td id="linetitle_title1" oncontextmenu="LoadLineXml('dGl0bGUx')">

js:

var linekey = window.btoa(document.getElementById('updateTitle').value);
var linefunction = "LoadLineXml(\'"+linekey+"\')";
document.getElementById('linetitle_' + input ).oncontextmenu = linefunction;

有任何改变的想法吗?

1 个答案:

答案 0 :(得分:0)

oncontextmenu 属性接受一个函数,但您可能还需要在IIFE中包装该函数以保护linekey的范围,具体取决于该函数的方式被称为:

document.getElementById('linetitle_' + input ).oncontextmenu = (function(key) {
    return function() {
        LoadLineXml(linekey)
    }
}(linekey));

您应该做的不是在HTML中设置属性。您可以直接设置属性以覆盖已存在的属性:

document.getElementById('linetitle_' + input ).setAttribute("oncontextmenu", linefunction);

但我不推荐这种做法。