我正在使用更新面板,我的回复有一些如下所示的 JavaScript。成功响应后,我需要评估它,加载它(使用外部脚本)
例如:我的 html 响应
<script type="text/javascript" src="test.js"></script>
<script type="text/javascript">
alert('asd');
</script>
<div>test</div>
<div>blah blah blah</div>
我不确定这个问题对您是否仍然重要,但是我将尽力在下面提供合理的答案。
AJAX 框架不会评估通过 UpdatePanel 调用返回的脚本。您必须将外部脚本重新附加到文档,以便浏览器可以请求它们并评估所有内联脚本。您可以使用我在下面粘贴的一个小模块。
var UpdatePanelEnhancer = function ()
{
var divSelector = '#liveArea';
function evaluateScripts()
{
$(divSelector).find('script').each(function ()
{
if (this.src)
{
$('body').append(this);
}
else
{
var content = $(this).html();
eval(content);
}
});
};
Sys.Application.add_load(evaluateScripts);
} ();
它的弱点是您必须为元素提供一个选择器,其中模块应该查找要评估的脚本(例如“liveArea”),尽管您可以扩展模块并为其提供一些配置。另外,我强烈建议您先加载外部 JavaScript。如果由于某种原因无法执行此操作,您还应该检查脚本是否已被引用,以避免必要的调用以及潜在的意外行为和错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)