0

我正在使用 dojo 的 dijit/Dialog 模块。Ajax 弹出窗口工作正常,但是当我在该弹出窗口中包含任何不起作用的 javascript 时,请查看下面的代码。

<script src="<?php echo $this->basePath()?>/js/dojo_lib/dojo/dojo.js" data-dojo-config="isDebug:1, async:1"></script>
<script>
    require(["dijit/Dialog"]);
</script>
<a title="Create a New Account" class="registration" href="javascript:void(0);" onclick="dijit.byId('user_registration').show();">Registration</a>
<div class="dijitHidden">
    <!-- dialog that gets its content via ajax, uses loading message -->
    <div data-dojo-type="dijit.Dialog" style="width:600px;" data-dojo-props="title:'Register',href:'/account/register',loadingMessage:'Loading form...'" id="user_registration"></div>
</div>

上面的代码用于显示弹出窗口。

弹出页面是这样的

<div>
Register
</div>
<script>
alert('Hello');
</script>

此警报在该弹出窗口中不起作用。请帮忙

4

2 回答 2

2

tik27 可能有最好的通用答案(它解释了为什么它不能开箱即用)。

如果您不想自己进行评估,Dojo 也有一个名为dojox/widget/DialogSimple(and dojox/widget/Dialog) 的模块/小部件,它有一个 property executeScripts。如果启用它,它将评估该页面上的所有脚本。

因此,如果您不想自己进行脚本评估,请尝试使用此小部件

于 2013-06-06T06:13:05.080 回答
1

看一眼。 调用从 Ajax 响应返回的 JavaScript 函数

它处理从 ajax 调用接收到的 javascript,因为这是在后台发生的事情。

于 2013-06-05T20:23:26.280 回答