如何在ajax响应页面中执行包含javascript函数的页面?

时间:2011-07-04 21:45:52

标签: php javascript ajax

好吧,在这里,我整天陷入困境,以解决我现在面临的问题。让我解释一下......

*photo.php  - (Main php file)*
….
….  (header goes here…)
….
*<script src="scripts/photogallery.js" type="text/javascript"></script>*
….
….  (ajax refresh script goes here…)
….
**http1.open("GET", "photo_x.php?id1=" + escape(sIdtn1), true);**
….
…. ( body/coding goes here…)
….
…. **<script type="text/javascript"> initGalleryScript(); </script> // this script is inside the ajax refresh tag**
….

*Photo_x.php  - (ajax refresh file)*
….
….  (coding goes here…)
….
…. **<script type="text/javascript"> initGalleryScript(); </script> // I need to execute this script which is not working currently.**

请帮我找一个在ajax响应页面内执行javascript函数的解决方案......

提前致谢。

1 个答案:

答案 0 :(得分:0)

你的问题不是很清楚你真正想做什么,但纯粹根据你的问题主题判断,我猜你想从服务器发出ajax请求并获得一些你可以执行的javascript在您当前页面的上下文中。

如果您需要从服务器返回的只是数据,那么您可以使用JSON或JSONP,这是一种以javascript格式从服务器返回数据的方式,其中数据表示为可以执行的javascript数据结构并由浏览器中的javacscript引擎解析。

在某些情况下,ajax请求本身包含您希望JSONP响应调用的主javascript中的回调函数的名称。这里讨论了这个回调如何工作:http://s5.parature.com/UserGuide/Content/API/ParatureApiJSON.html#JSON_Callback_support

如果您为服务器返回的内容编写自己的响应处理程序,则可以在返回的代码上调用eval,并且可以在响应中包含所需的任何类型的javascript,包括代码。这样做时需要注意一些安全事项,但它也可以这样工作。

如果代码是提前知道的(通常是这样),那么您可能实际上不需要从服务器返回代码。您可以只在原始页面中包含代码,也可以通过插入脚本标记动态加载代码,然后ajax响应可以只是数据。