您是否有一种方法可以使用原型来获取在ajax调用中评估的脚本中定义的变量的值?据我所知,ajax请求是在setTimeout闭包内部进行的,因此变量的范围在那里被限制......但也许我错过了一些东西!
例如:
外部脚本:
<script>
var foo = "bar";
</script>
Ajax调用:
new Ajax.Request(external_script, {
evalScripts: true,
onComplete: function () {
//some magic
console.log(foo);
}
});
答案 0 :(得分:0)
从外部JS文件中删除<script>
标记。外部JS文件应该只包含Javascript代码。 <script>
仅用于在HTML文件中嵌入Javascript。
根据Prototype.js Ajax文档,启用脚本执行的选项是evalJS
,而不是evalScripts
。