2012-08-15 5 views
0

수정하려는 WordPress 플러그인의 자바 스크립트 파일이 있습니다. 그것은 일종의 허점으로 도메인 간 요청으로 사라지고있는 것 같습니다.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); 
} 

전달 된 URL은 myFunction이 스크립트의 다른 곳에서 정의 된 함수입니다 'http://url.com/page?callback=namespace.myFunction' 같은 것입니다 : 그것은이 기능입니다.

내가 이해하는 것으로부터, 이것은 내 페이지 상단에 소스 URL을 삽입하여 브라우저가 해당 페이지를로드하도록합니다. 그런 다음 url에 첨부 된 콜백을 호출하여 결과를 단일 매개 변수로 myFunction 예제 함수에 전달합니다.

내 문제는 몇 가지 고유 URL에 대해 myFunction을 호출해야하지만 결과는 호출 URL에 연결되어 있다는 것입니다. myFunction은 페이지로드가 완료 될 때마다 호출되는 것으로 보이므로 어떤 데이터 세트가 작동 중인지 계산할 수는 없습니다. myFunction이 콜백 URL에 인코딩 된 추가 변수를 전달하거나 myFunction이 첨부 된 URL을 알기 위해 myFunction에 어떤 방법이 필요합니다.

아무도 도와 줄 수 있습니까?

편집 : 소스 요청이 완료 될 때마다

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")의 클라이언트 측 구현입니다. 새로운'

관련 문제