Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
闭包编译器高级和服务器端注入Javascript_Javascript_Google Closure Compiler - Fatal编程技术网

闭包编译器高级和服务器端注入Javascript

闭包编译器高级和服务器端注入Javascript,javascript,google-closure-compiler,Javascript,Google Closure Compiler,评估 或者通过名称传递对象并访问属性 如果有办法将一个变量注释为未知变量,即使它被定义为字符串,或者诱使编译器这样想,那就太好了 也许更好的方法是为处理所有这些事情的嵌入式Javascript创建一个预处理/后处理脚本 编辑: 搜索内联变量可能会很繁琐,甚至更糟糕的是,搜索嵌入内联脚本中的更复杂的代码片段和html标记中的onclick事件 推荐的最佳方法是什么? 如果可能,我希望能够内联字符串,以便输出 function exposedFunction(myVariable){/* stuff

评估

或者通过名称传递对象并访问属性

如果有办法将一个变量注释为未知变量,即使它被定义为字符串,或者诱使编译器这样想,那就太好了

也许更好的方法是为处理所有这些事情的嵌入式Javascript创建一个预处理/后处理脚本

编辑: 搜索内联变量可能会很繁琐,甚至更糟糕的是,搜索嵌入内联脚本中的更复杂的代码片段和html标记中的onclick事件

推荐的最佳方法是什么?
如果可能,我希望能够内联字符串,以便输出

function exposedFunction(myVariable){/* stuff */}
if(“=”Y”)剂量测量;还有别的吗
但如果不可能,是否建议创建一个构建前/构建后工具,只使用全局变量,使用函数,或者只将其视为情景

谷歌自己似乎在某些地方向其内联Javascript注入了内联变量。 也许他们有一个构建前/构建后工具

什么是我在选择方法时应该考虑的主要因素?我只能想到时间/精力的投资。
这仅仅是一个努力优化的例子;如果我只是提取这些东西并将它们放入全局变量?

如果直接使用在字符串中,则必须担心编译器是否会考虑它们常量:

“”==“”

将在编译时进行计算。类似地,“if(“”)…”等同于“if(true)…”,因此一般来说,直接将它们用于替换是不明智的

对代码进行预处理,以便以对编译安全的方式替换替换,这似乎是合理的:

“+eval(”)+”


但是,如果使用源地图,这是一个棘手的问题。

这里似乎没有直接的问题。此外,您遇到的问题并不明显-您提供了几种可能的技术的示例,但没有提到它们不适用于您的原因。我更新了一个editNote:我愿意接受一个自动化的预/后处理工具,它实现了所需的大部分功能。这将有效地减少时间/精力的投入。如果你以不同的方式处理问题,你会有更好的结果。看见
myVariable = window["myVariable"];
myVariable = eval('"<%=myVar%>"');
function exposedFunction(myVariable){/* stuff */}
if("<%=myVar%>"=="Y")doSomething;else doSoemthingElse