在字符串中执行javascript函数

时间:2012-12-20 19:57:20

标签: javascript html

除了下面指定的代码之外,有没有更好的方法将动态文本注入html字符串?

var code ='siteCode1';

html代码作为字符串:

existing: '<p>Log in with your'+ eval("siteVarObj('+code+').siteName") +'account</p>',


function siteVarObj(siteCode){
            if(siteCode === 'siteCode1'){
                this.siteName = 'google.com';
                this.siteContactUsURL = '';
            }else if(siteCode === 'siteCode2'){
                this.siteName = 'stackoverflow.com';
                this.siteContactUsURL = '';
            }
            return this;
        }

2 个答案:

答案 0 :(得分:5)

这应该可以正常工作:

var code = 'siteCode1';
var myHTMLString = '<p>Log in with your '+ siteVarObj(code).siteName + ' account</p>';

答案 1 :(得分:0)

我通常建议避免执行eval中的任何输入,因为 当正确使用时,eval会打开您的注入攻击代码。