2014-03-24 12 views
0

我想在我的android的firefox附加程序中執行雙面javascript代碼。如何從雙面js代碼調用主頁腳本的方法?如何在android中使用firefox add-on中的沙箱中的回調?

主要代碼:

function execJavaScript(aWindow, itemId, password) { 
    var xmlHttpPost = new aWindow.XMLHttpRequest(); 

    if (xmlHttpPost.overrideMimeType) 
     xmlHttpPost.overrideMimeType('text/html'); 
    xmlHttpPost.open('POST', 'http://localhost:'+port+'/home.html?msgfill='+itemId+'msgpasswd='+password, false); 

    xmlHttpPost.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
    xmlHttpPost.send('msg=hello'); 

    // execute received javascript 
    var javascript = xmlHttpPost.responseText; 

    try { 
     // try to execute received javascript 
     evalInSandbox(aWindow, javascript); 
    } catch(e) { 
     showToast(aWindow, e.message); 
    } 
} 

function callBackFromLoadedJS(String result) { 
    Console.log("Callback result = " + result); 
} 

我想從片面的JavaScript發送結果。

+0

好問題你可能會有更好的運氣在ask.mozilla.org得到答案,他們在這個東西上工作。 – Noitidart

回答

0
var javascript = readFileContent(); 
var sandbox = new Components.utils.Sandbox(window); 
sandbox.window = window; 

Components.utils.evalInSandbox(javascript, sandbox); 

sandbox.theMethodYouNeedToCall();