我有以下锚标记
<a rel="2" onclick="javascript:aimsCCUAQuestionsBanner('TOPIC','VAC_FIOSTV_PROD_AVAIL','CPTU');" name="&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中都没有调用该函数。有人能告诉我如何从变量执行函数吗?
答案 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();
应该失败,因为它不是函数,除非你的函数返回另一个函数