Google Chrome是否支持自定义MIME类型?实际上,我在Chrome应该支持的Windows注册表中添加了我们自己的MIME类型.但是,Chrome无法读取.我在JavaScript中编写了一个方法.在那个方法中呼叫 Navigator.MimeType["<customMimeType>"]
.如果脚本在Firefox中执行,则会给出正确的结果,但对于chrome,此语句不起作用.如何在Chrome中创建自定义MIME类型?有没有其他方式插件注册其MIME类型,Chrome检测到?任何人都可以提供良好的资源来构建chrome的插件(不是扩展名)?
我要求用户可以提供任意语句,这些语句可以存储在函数中,稍后调用以获取返回值.这userInput
可能是一个简单的例子
var x = 10;
x;
Run Code Online (Sandbox Code Playgroud)
我会存储这个
var callback = function() {
return eval(userInput);
}
Run Code Online (Sandbox Code Playgroud)
然后按预期运行callback()
返回10
.
但是,我还需要使用显式返回语句来支持该情况,即userInput
可能是
var x = 10;
return x;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,上面的eval方法将失败SyntaxError: return not in function
.相反,我可以将回调存储为
var callback = new Function(userInput);
Run Code Online (Sandbox Code Playgroud)
我的问题是我想根据规则'得到显式返回值来结合这两种方法,否则得到最后执行语句的结果'.特别是这不能通过在回调创建时分析代码来完成,因为用户可能会做一些奇怪的事情
if(envVar < 10)
return a;
b * 0.5;
Run Code Online (Sandbox Code Playgroud)
它结合了两者.
有关如何构建callback
函数创建以适应这些可能输入的任何想法?不幸的是,不可能在用户上强制执行一种风格或另一种风格.
更新以回答下面的一些评论.
建议的一个解决方案是搜索返回令牌并在new Function
和之间进行选择eval
.这不适用于我的上一个示例,请参阅http://jsfiddle.net/ZGb6z/2/ - out4应该是"no"
但最终未定义,因为最后执行的语句未返回.
另一个建议是修改用户输入,以便在最后一行添加显式返回(如果找不到).不幸的是,不可能知道最后会执行哪个语句.考虑
var x = 10;
switch(x) {
case 10:
100;
break; …
Run Code Online (Sandbox Code Playgroud)