responseText里面的js的问题。

bjwulin 2007-02-08
现在responseText都是文本型的。直接替换原来的内容。

这样就带来一个问题,就是responseText如果有js,而且需要执行,怎么办?,比如cell编辑,我用下拉树。而树生成是靠一些js。

fins的ecside做的很强大了。以前我在ecTable中做的扩展,fins都实现的非常好,感谢一个。
fins 2007-02-09
eval啊
我就是这么做的

scriptCode=r.responseText;
eval(script);
我通常返回json对象
然后赋给当前叶面中的js变量 然后再处理
bjwulin 2007-02-09
但是问题是,这些responseText可能是html,js的混合。

比如页面的onload方法要执行。
fins 2007-02-09
那就别让他是混合的
让其中的那些 html代码也变成 js
bjwulin 2007-02-09
但是,这样的工作量有点大。
呵呵,fins,可以参考下dojo的写法。它有个参数是什么executeJavascript设置是否执行响应文本的js.
fins 2007-02-09
没太明白
你返回的代码是什么样的呢?

例如返回了:

<script>
alert(222);

function init(){
 alert("haha")
}
</script>
<body onload="init();">hello</body>


那么你希望可以自动执行 里面的js??
bjwulin 2007-02-09
对的。这是一种可能。
fins 2007-02-09
这个想执行里面的
alert(222)
还要执行init 太难了吧
相当于一个小型的语言解释器了
这个可做不来

问题就是这样的需求往往可以通过更便捷的方式实现.

如果你的ajax返回了这样的代码 那只能说明系统在设计上出现了问题 没有为ajax设计.
ajax返回的要么是 全script 要么是xml 要么是txt信息 要么是html代码(代码中可以包含脚本,但那些脚本不应该是在返回后希望立即被执行的).

我没用过dojo 我只用过prototype dwr ajaxanywhere这3个ajax相关的组件 对dojo不了解 不知道他的executeScript到底是怎么做的
Global site tag (gtag.js) - Google Analytics