相关疑难解决方法(0)

带有可变参数的新Function()

我需要使用new Function()构造函数创建一个具有可变数量参数的函数.像这样的东西:

args = ['a', 'b'];
body = 'return(a + b);';

myFunc = new Function(args, body);
Run Code Online (Sandbox Code Playgroud)

没有可能eval()吗?


非常感谢你们!实际上,a + b不是我主要关注的问题.我正在研究一个处理和扩展模板的代码,我需要将未知(和变量)数量的参数传递给函数,以便将它们作为局部变量引入.

例如,如果模板包含:

<span> =a </span> 
Run Code Online (Sandbox Code Playgroud)

我需要输出参数的值a.也就是说,如果用户声明扩展功能为

var expand = tplCompile('template', a, b, c) 
Run Code Online (Sandbox Code Playgroud)

然后打电话

expand(4, 2, 1) 
Run Code Online (Sandbox Code Playgroud)

我需要替换=a使用4.是的,我很清楚功能类似于eval()并且运行速度非常慢,但我没有任何其他选择.

javascript

29
推荐指数
3
解决办法
4万
查看次数

通过内联数据属性传递Javascript函数

我正在使用Javascript文件上传库,其中一个功能是它使用HTML5内联数据属性将信息传递给插件.

这适用于任何数据相关,字符串,数字等,但插件有一些你可以分配函数的回调方法.我的问题是,当试图通过这些内联数据属性传递javascript函数时,如下所示:

<input type="file" name="test" data-on-finish="alert();">
Run Code Online (Sandbox Code Playgroud)

该插件可以很好地获取对onFinish()回调方法的引用,但是当它尝试执行我放入的任何javascript时,我得到错误:

Uncaught TypeError: Object alert(); has no method 'call' 
Run Code Online (Sandbox Code Playgroud)

我假设它正在读取alert();字符串.知道如何通过可执行的JavaScript传递到插件吗?

我相信我使用的插件是jQuery文件上传插件的扩展:https: //github.com/blueimp/jQuery-File-Upload/wiki/Options

更新: 我也尝试使用全局定义的函数,如下所示:

<script type="text/javascript">
    function myTesting(){
       alert('yay');
    }
</script>
<input type="file" name="test" data-on-finish="myTesting">
Run Code Online (Sandbox Code Playgroud)

我试着改变data-on-finish属性myTesting,myTesting()仍然没有运气...

javascript html5 attributes function callback

10
推荐指数
1
解决办法
6959
查看次数

标签 统计

javascript ×2

attributes ×1

callback ×1

function ×1

html5 ×1