动态加载javascript函数

动态加载javascript函数,javascript,ajax,Javascript,Ajax,嘿伙计们这是我的新密码 $(文档).ready(函数(){ $.ajax({ url:'getInfo.php', 成功:功能(数据){ var myJSONObject={“bindings”:[{“ircEvent”:“privmg”,“method”:“newURI”,“regex”:“^http://.*”,{“ircEvent”:“privmg”,“method”:“deleteURI”,“regex”:“^delete.*”,{“ircEvent”:“privmg”,“method

嘿伙计们这是我的新密码


$(文档).ready(函数(){
$.ajax({
url:'getInfo.php',
成功:功能(数据){
var myJSONObject={“bindings”:[{“ircEvent”:“privmg”,“method”:“newURI”,“regex”:“^http://.*”,{“ircEvent”:“privmg”,“method”:“deleteURI”,“regex”:“^delete.*”,{“ircEvent”:“privmg”,“method”:“randomURI”,“regex”:“^random.*”};
trip_进度=“”;
var headID=document.getElementsByTagName(“head”)[0];
var newScript=document.createElement('script');
newScript.type='text/javascript';
newScript.src='js/callclick.js';
headID.appendChild(newScript);
document.getElementById(“timepass”).innerHTML=trip\u progress;
}                                              
});              
});    

JS代码有这样一个简单的警报检出


我不明白为什么没有在函数中传递对象。

您可以使用闭包来调用一个函数,该函数将生成一个动态函数,然后您可以调用该函数,尽管我从未使用过此功能。您可以找到有关闭包的更多信息。它们是许多函数式编程语言的功能。

请查看我的编辑。如果您创建了您的对象,那么您的代码将按预期工作

Heyy guys this is my new code

<html>
<head>
<script type="text/javascript"  src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script>
$(document).ready(function(){   
$.ajax({
    url: 'getInfo.php',
    success: function(data) {
var myJSONObject = {"bindings": [{"ircEvent": "PRIVMSG", "method": "newURI",   "regex": "^http://.*"},{"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},{"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}]};


trip_progress='<div><img src="red.png" onmouseover="myclick('+myJSONObject+')"  /></div>';

var headID = document.getElementsByTagName("head")[0];                                                            
var newScript = document.createElement('script');                                                                           
newScript.type = 'text/javascript';                                                                             

newScript.src = 'js/callclick.js';                                                                          

headID.appendChild(newScript);                                                                          

 document.getElementById("timepass").innerHTML=trip_progress;                                                                                                               

     }                                              
   });              
  });    


 </script>
 </head>
 <body>

eval(“function someFunction(){alert(\'Hello\');}”)?您能更好地描述一下您真正想要解决的问题吗?您的代码将加载一个名为“JS/calltool.JS”的外部JS文件。你有什么问题吗?你想改变什么?加载后,您可以引用该文件中的任何全局变量或函数,无论它是否在外部JS文件中。在尝试访问它之前,您是否在等待它加载?我不明白,如果您要尝试从同一页加载函数定义,为什么不简单地将其放入
标记中?对我来说,它似乎不是动态的。我需要同步调用函数a,实际上我发现我能够提醒存储在主js文件变量中的简单字符串值,但我可能无法提醒任何对象!谢谢你的回答,但我创建了一个函数,能够提醒简单的字符串值,但我不能提醒对象。我该怎么办!这些对象是全局存储的,它们基本上是google maps标记,我可以提醒它们的属性,如gmarker.length,但不能提醒对象gmarker。动态脚本代码在ajax调用成功后调用,我在没有ajax调用的情况下尝试了您的代码,但alert在ajax成功函数中返回未定义的代码!
var gmarkers = {key: 'value'};

var ss = document.createElement('script');
var scr = "function caller(){ alert("+JSON.stringify(gmarkers)+") ;}"; //alert(scr); var tt1 = document.createTextNode(scr); ss1.appendChild(tt1); var hh1 = document.getElementsByTagName('head')[0]; hh1.appendChild(ss1); caller()
var tt = document.createTextNode(scr);
ss.appendChild(tt);
var hh = document.getElementsByTagName('head')[0];
hh.appendChild(ss);

caller();