如何在android上的firefox插件中使用沙盒回调

How to use callback in sandbox in firefox add-on on android?

本文关键字:回调 插件 android 上的 firefox      更新时间:2023-09-26

我想在android上的firefox插件程序中执行侧面javascript代码。如何从侧面js代码调用主页的脚本方法?

主要代码:

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发送结果

var javascript = readFileContent();
var sandbox = new Components.utils.Sandbox(window);
sandbox.window = window;
Components.utils.evalInSandbox(javascript, sandbox);
sandbox.theMethodYouNeedToCall();