【问题标题】:Calling multiple functions from Salesforce Javascript Button从 Salesforce Javascript 按钮调用多个函数
【发布时间】:2014-10-23 22:55:11
【问题描述】:

我是 javascript 的新手,所以这可能是一个愚蠢的问题。

我在 Salesforce 中构建了一个 javascript 按钮,点击后会执行以下操作 (http://i.stack.imgur.com/hqMhp.png)

我现在想做的只是显示 4 个单独的警报(稍后我将添加实际功能)。

这是我正在使用的代码:

   {!REQUIRESCRIPT("/soap/ajax/20.0/connection.js")}


var leadObj = new sforce.SObject("Lead"); 
var countryVal = "{!Lead.Country }"; 
var leadID = "{!Lead.Id}"; 
var ownerID = "{!Lead.OwnerId }"; 

function insertScript(script){ 
    var targetNode = document.createElement('div'); //  construct div for script injection 
    document.body.appendChild(targetNode); 
    try {
        var el = document.createElement('script');
            el.type="text/javascript";
            el.innerHTML = script;
        targetNode.appendChild(el); 
    } catch (e){ 
        var el = document.createElement('span'); 
        targetNode.appendChild(el); 
        el.innerHTML = "<br /><scr"+"ipt type='text/javascript' defer='defer'>"+script+"</script" + ">"; 
    } 

var box = new SimpleDialog("hersh"+Math.random(), true); 
    parent.box = box; 
    box.setTitle("Lead Rerouter"); 
    box.createDialog(); 
    box.setWidth(350); 
    box.setContentInnerHTML("<p align='center'><img src='/img/icon/profile24.png' style='margin:0 5px;'/><img src='/img/sales/quotes/sync_overlay_arrow.png' style='margin:5px;'/><img src='/img/icon/custom51_100/globe24.png' style='margin:0 5px;'/></p><p align='center'>Which region should this lead be routed to?</p><p align='center'><br /><button class='btn' onclick='routeAPAC(); return false;'>APAC</button><button class='btn' onclick='routeEMEA(); return false;'>EMEA</button><button class='btn' onclick='routeNA(); return false;'>NA</button><button class='btn' onclick='routeLATAM(); return false;'>LATAM</button><br><button class='btn' onclick='window.parent.box.hide(); return false;'>Cancel</button></p>"); 
    box.setupDefaultButtons(); 
    box.show(); 
} 

script = "function routeAPAC(){alert (\"Lead routed to APAC!\")}"; 
script = "function routeEMEA(){alert (\"Lead routed to EMEA!\")}"; 
script = "function routeNA(){alert (\"Lead routed to NA!\")}"; 
script = "function routeLATAM(){alert (\"Lead routed to LATAM!\")}";   


insertScript(script);

我在这里做错了什么?

谢谢!

【问题讨论】:

    标签: javascript salesforce


    【解决方案1】:

    你太复杂了。

    document.querySelector(".generatorbutton").onclick = function() {
        //add the window
    }
    
    var actionlist = {
        ".apa": function(){
            //things to do onclick
        },
        ".emea": function(){
            //things to do onclick
        },
        ".na": function(){
            //things to do onclick
        },
        ".latam": function(){
            //things to do onclick
        },
    };
    for(selector in actionlist) {
        document.querySelector(selector).onclick = actionlist[selector];
    }
    

    查看this 以供将来参考。

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      由于script 变量的覆盖,在上面的代码中,您只能有最后一个函数routeLATAM 将通过insertScript 函数定义

      如果你像下面这样连接,你会看到所有可用的函数定义

      script = "function routeAPAC(){alert (\"Lead routed to APAC!\")}"; 
      script += "function routeEMEA(){alert (\"Lead routed to EMEA!\")}"; 
      script += "function routeNA(){alert (\"Lead routed to NA!\")}"; 
      script += "function routeLATAM(){alert (\"Lead routed to LATAM!\")}";   
      
      insertScript(script);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-27
        • 1970-01-01
        • 2021-05-07
        • 2018-07-23
        • 2011-12-21
        • 2015-05-26
        相关资源
        最近更新 更多