好吧,在这里,我整天陷入困境,以解决我现在面临的问题。让我解释一下......
*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函数的解决方案......
提前致谢。
答案 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响应可以只是数据。