prototype的Ajax.Updater可以用来更新一段html,但在更新带javascript的html时,需要注意几个问题
一. 需要在Ajax.Updater添加参数 evalScripts : true
二. javascript代码块要使用下面的形式
showHi = function() {
alert('Hi');
}
而不能使用下面的形式
function showHi() {
alert('Hi');
}
三. 注意javascript代码块中不能使用 标记,否则 IE 会出错,firefox没问题。
下面是个例子, 在a1.jsp中加载a2.jsp,
a1.jsp代码
- <html>
- <head>
- <title>Insert title heretitle>
- <script type="text/javascript" src="prototype-150.js">script>
- <script type="text/javascript">
- function ajax() {
- var url = "/MyWebApp/a2.jsp";
- var myajax = new Ajax.Updater(
- {success: 'mydiv'},
- url,
- {
- asynchronous:true,
- method: 'get',
- evalScripts:true
- }
- );
- }
- script>
- head>
- <body>
- <a href="#" onclick="ajax()">click here1a>
-
- <div id="mydiv">div>
- body>
- html>
a2.jsp代码
- <script type="text/javascript">
- showHi = function() {
- alert('Hi');
- }
- sayHello = function() {
- alert('Hello');
- }
- script>
-
- <a href="#" onclick="showHi();">showHia>
-
- <script type="text/javascript">
- sayHello();
- script>
参考