2012-08-15 181 views
0

我有一个来自WordPress试图修改的WordPress插件的JavaScript文件。似乎越来越多的跨域请求带有某种漏洞。正是这种功能:如何在javascript中传递url回调函数中的参数

function urlCallback(url){ 
    var req = url; 
    var head = document.getElementsByTagName("head").item(0); 
    var script = document.createElement("script"); 
    script.setAttribute("type", "text/javascript"); 
    script.setAttribute("src", req); 
    head.appendChild(script); 
} 

传递的网址是一样的东西'http://url.com/page?callback=namespace.myFunction'其中myFunction是在脚本中别处定义的功能。

据我所知,这是在我的页面顶部插入源url,导致浏览器加载该页面。然后调用附加到该URL的回调函数,将结果作为单个参数传递给示例函数myFunction。

我的问题是,我需要调用myFunction为几个不同的独特的网址,但结果绑定到调用网址。 myFunction似乎在页面完成加载时被调用,所以我不能简单地保持它正在操作的数据集的计数。我需要一些方法让myFunction通过在回调url中编码的附加变量,或者myFunction知道它附加的url。

任何人都可以帮助我吗?

编辑:

为了进一步阐述,这里是我的代码的简化版本:

var parseUrls = (function(){ 
    function urlCallback(url){ 
    var req = url; 
    // Here is where I need to save the url 
    var head = document.getElementsByTagName("head").item(0); 
    var script = document.createElement("script"); 
    script.setAttribute("type", "text/javascript"); 
    script.setAttribute("src", req); 
    head.appendChild(script); 
    } 

    return { 
    options: {}, 
    parseNextUrl: function(result) { 
     if (!result || !result.data) { return; } 
     var data = result.data; 
     // Here is where I need the url 

    }, 
    parseUrl: function(result) { 
     if (!result || !result.data) { return; } 
     var data = result.data; 
     for (var i = 0; i < data.length; i++) { 
     urlCallback(data[i].url + "/new_url/page?callback=parseUrls.parseNextUrl"); 
     } 
    }, 
    showResult: function(options){ 
     urlCallback("http://start.url.com/page?callback=parseUrls.parseUrl"); 
     this.options = options; 
    } 
    }; 
})(); 

只是要清楚每当源请求完成,parseNextUrl被调用。这意味着所有的urlCallback调用都已经完成。

+0

你有没有例子说明它是如何在页面上实际调用的?你在看什么是“JSONP”的客户端实现(JSON-“padded”)。它会创建一个新的'