站ajax加载,异步的页面有js,应该如何让它执行。

JavaScript017

站ajax加载,异步的页面有js,应该如何让它执行。,第1张

1. 采用附加一个iframe的方法去执行js,为我等代码洁癖者所不齿。

2. 使用document.write输出代码,我等简洁主义者所不愿。

3. 最简单的方法是把js放到需要调用的父页面,那想这样的公用页面,每个地方调用都要写入一次,代码冗余。

4. eval是个解决方法,虽然低效。

5. 复杂的解决方法:正则匹配出加载页面中的所有js,为这些js创建同样多个<script>标签,把js内容插入即可执行。但使用中发现,firefox可行,但IE还是不从。(师太,您就从了吧~)

可以在jquery的ajax方法成功执行之后,执行相应的js代码

例如:index.html 页面

<script language="javascript">

var id = 10

$.ajax({

url:'ajax.php?action=ok',

type:'post',

data:'id='+id,

async : false,

success: function(data){

//可以在这里执行相应的js代码

$("#user_id").val(data)

}

})

</script>

<input type="text" name="user" id="user_id" value="">

<input type="button" value="点击" onclick="check()">

ajax.php 处理页面

<?php

if($_GET['action'] == 'ok'){

$id = $_POST['id']

echo $id

}

?>

直接在success定义的回调方法中postStr()就可以了。

但是要注意一点:var temp和postStr方法都必须放到js最底层,即直接放到<script>标签下,不要嵌套到其他方法中,不然可能会调用不到。