调用变量中包含的javascript代码

时间:2014-03-10 10:42:45

标签: javascript mootools

我有以下锚标记

<a rel="2" onclick="javascript:aimsCCUAQuestionsBanner('TOPIC','VAC_FIOSTV_PROD_AVAIL','CPTU');" name="&amp;lid=choose_topic_fiostvchangeservice" id="opt1tv1" href="javascript:void(0);" class="tv-avail">Billing </a>

当点击“Billing”时,我必须调用aimCCUAQuestionsBanner('TOPIC','VAC_FIOSTV_PROD_AVAIL','CPTU')。此外,当用户点击同一页面上的另一个超链接时,必须读取和执行onclick功能,就像点击“Billing”时所调用的那样。

我正在使用mootools将onclick函数读入下面的变量

var func = $("step-1").getElement('a#'+step1_id).get('onclick');

但是当我试图执行下面的功能时

  window[func](); 

在FF和IE中都没有调用该函数。有人能告诉我如何从变量执行函数吗?

1 个答案:

答案 0 :(得分:1)

执行函数的评估

eval(func);

尝试http://jsfiddle.net/99MrC/1/例如

更新:: 您要做的是获取锚标记的属性值,即“javascript:goalsCCUAQuestionsBanner('TOPIC','VAC_FIOSTV_PROD_AVAIL','CPTU');”  这将是一个字符串而不是函数。所以你需要评估浏览器以javascript的形式执行字符串。

当你说这是有效的时候

var func = aimsCCUAQuestionsBanner('CHANGE_CATEGORY','VAC_MAIN', '');
func();

那是因为当你执行时

var func = aimsCCUAQuestionsBanner('CHANGE_CATEGORY','VAC_MAIN', '');

它已经执行了该功能。

下一个电话

func();

应该失败,因为它不是函数,除非你的函数返回另一个函数