Динамически загружаемая функция JavaScript - PullRequest
0 голосов
/ 20 августа 2011

 
Heyy guys this is my new code </p>

<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>
</code>

Код JS имеет простую проверку оповещения, как это http://www.vaishakhthayyil.com/trip/js/callclick.js

Я не понимаю, почему объект не передается в функции.

Ответы [ 2 ]

0 голосов
/ 20 августа 2011

Пожалуйста, ознакомьтесь с моим редактированием. Если вы JSON.stringify вашего объекта, то ваш код будет работать так, как вы ожидаете.

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();
0 голосов
/ 20 августа 2011

Вы могли бы потенциально использовать замыкания для вызова функции, которая сгенерирует динамическую функцию, которую вы затем можете вызвать, хотя я никогда не использовал эту возможность. Вы можете найти больше информации о затворах здесь . Они являются особенностью многих функциональных языков программирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...