从devtools.inspectedwindow.eval返回值
return value from devtools.inspectedwindow.eval
我试图将eval的值返回给我的函数,我无法让它工作。我已经尝试了一些事情,所有这些事情都给了我null或undefined。这是我的代码
this.isLoggedIn = function()
{
var q = 'document.getElementById("game").contentWindow["' + windowMembers[gints] + '"]["' + gamevars[lints] + '"]["' + loginvars[l2ints] + '"]()["' + loginvars2[flogin] + '"]()';
chrome.devtools.inspectedWindow.eval(q, function(s,e){console.log(s); s});
};
console.log显示回调函数中正在接收正确的值
我也试过
chrome.devtools.inspectedWindow.eval(q, function(s,e){console.log(s); return s});
return chrome.devtools.inspectedWindow.eval(q, function(s,e){console.log(s); s});
return chrome.devtools.inspectedWindow.eval(q, function(s,e){console.log(s); return s});
这些方法对我来说都不起作用,我相信这与以下事实有关:
A: chrome.devtools.inspectedWidow.eval不返回值
B:当从回调函数返回值时,它只是结束该回调函数
所以我希望这里有人能帮我实现以下目标
运行函数isLoggedIn()
对查询
执行eval获取查询的值(在本例中为true'false)
让isLoggedIn函数返回eval数据
我写这个devtools扩展调试某些html5'js游戏。
看起来您对JavaScript的异步特性感到困惑。如果你调用isLoggedIn
,它会在function(s,e){console.log(s); s}
执行之前返回。
在isLoggedIn
的最后添加一个console.log('test')
,并观察控制台消息显示的顺序。
你的问题与chrome或chrome扩展无关,你需要阅读的是在JavaScript中处理异步函数。请参阅这个问题以获得很好的解释和解决方法(该问题是关于AJAX的,但这只是一个细节)。
相关文章:
- Javascript返回值只在循环中返回一次
- XMLHttpRequest未返回值-状态202
- 根据是否解析了 Promise 从函数返回值
- Angular,函数在(模型)工厂中返回值
- AngularJS错误:提供程序必须从$get工厂方法返回值
- 如何从客户端的数组中获取用户输入和返回值
- Javascript中带有返回值的嵌套函数
- 为变量分配多个nodejs导出返回值时出现问题
- 通过回调从onreadystatechange返回值
- 从Ajax函数返回值
- JavaScript生成器中收益率返回值的解析
- HTML如何根据javascript函数的返回值限制文本输入
- 返回值+new Date()与Date.now()是否不同
- 使用在函数外部声明的变量的 Javascript 返回值 + undefined
- 如何在Android中将Javascript返回值转换为String
- chrome.storage.sync.get未返回值-Angular服务
- 修复AngularJS错误:提供程序必须从$get工厂方法返回值
- 如何从嵌套的API函数返回值
- 从devtools.inspectedwindow.eval返回值
- 返回在eval中创建的值