【问题标题】:JS: Change OnClick Event from variableJS:从变量更改 OnClick 事件
【发布时间】:2016-08-17 22:58:07
【问题描述】:

我正在尝试更改按钮的 onclick 事件。 这是我的代码:

var onclickEvent = 'window.open("https://www.google.com", "", "widht:20px height:30px")'
btn.onclick = function() {onclickEvent}

【问题讨论】:

    标签: javascript html function button onclick


    【解决方案1】:

    你需要这样分配:

    var onclickEvent = function() {
        window.open("https://www.google.com", "", "widht:20px height:30px");
    };
    btn.onclick = onclickEvent;
    

    使用您拥有的字符串,您唯一的选择是eval,这被认为是不好的做法,不推荐:

    var onclickEvent = 'window.open("https://www.google.com", "", "widht:20px height:30px")';
    btn.onclick = function() { eval(onclickEvent); };
    

    在这种情况下,您应该考虑此表达式中真正动态的内容并为其使用变量而不是评估整个 javascript 字符串。例如,如果这是 url,那么你可以有类似的东西:

    var onclickEvent = function(url) {
        window.open(url, "", "widht:20px height:30px");
    };
    
    var url = 'https://www.google.com';
    btn.onclick = function() { onclickEvent(url); };
    

    【讨论】:

    • 但我想将 onclickEvent 用作字符串,以便更改函数。 onclickEvent 是来自文本框的字符串。
    • 这是非常糟糕的做法,因为您需要使用eval,如我的答案所示来执行此代码。我建议您重新考虑您的设计。
    • 为什么必须是字符串?您需要在字符串中更改什么?你不能将参数传递给更新字符串的函数吗?
    猜你喜欢
    • 2011-07-08
    • 2021-03-26
    • 1970-01-01
    • 2020-02-07
    • 2016-03-20
    • 1970-01-01
    • 2016-07-04
    • 1970-01-01
    • 2011-04-24
    相关资源
    最近更新 更多