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調用都已經完成。
你有沒有例子說明它是如何在頁面上實際調用的?你在看什麼是「JSONP」的客戶端實現(JSON-「padded」)。它會創建一個新的'