Javascript Can';t捕获";文档。(…….tagName";在应用浏览器中的phonegap中
我通过注入的javascript(也称为inappbrowser回调)在打开的浏览器中打开并执行此函数 该功能可以工作,因为我可以看到警报。InApp浏览器通过窗口打开。打开(…): 尝试使用以下方法进行操作:Javascript Can';t捕获";文档。(…….tagName";在应用浏览器中的phonegap中,javascript,android,cordova,Javascript,Android,Cordova,我通过注入的javascript(也称为inappbrowser回调)在打开的浏览器中打开并执行此函数 该功能可以工作,因为我可以看到警报。InApp浏览器通过窗口打开。打开(…): 尝试使用以下方法进行操作: executeScript用法示例可在中找到。这是打字错误吗ii
executeScript
用法示例可在中找到。这是打字错误吗i
->i
<上下文中的code>document应该是指inappbrowser中的文档。@daserge但这似乎是注入的codeiab.executeScript
。我只打开回调函数并直接在回调函数中调用文档。我需要注入脚本吗?如果是这样,我如何从新文档中获取信息到phonegap?您能否向代码展示您是如何做到这一点的:我通过注入javascript(也称为inappbrowser回调)在打开的浏览器中打开并执行此功能。
?有关如何从iab获取结果的详细信息,请参阅。是否可以尝试调用ref.executeScript({code:code},function(results){…})代码>?var代码='(函数(){\n'+'返回document.body.getElementById(“l_fdb”);\n'+'})()@daserge但我不明白,我应该如何将信息从iApp浏览器返回到我的应用程序,就像那样?(请输入答案以便我能理解您的代码)这不会返回任何内容。“return document.body.getElementById(“l_fdb”);”在浏览器中可用,但“results”为空或未定义。知道为什么吗?更新了-应该是document.getElementById
而不是document.body.getElementById
。
var f_el_tname = document.body.getElementsByTagName("the_tag")[0];
//the above alerted "undefined" in android browser and the correct value in the desktop
//rewriting variable for debug purposes
f_el_tname = document.body.getElementsByTagName("the_tag");
alert(f_el_tname.length); //this gives "0" in phonegap android browser and "1" in desktop (correct)
for(var i = 0; i < f_el_tname.size; i++){
alert(f_el_tname); //this does not even run
}
var ref = window.open(url,'_blank','location=yes,toolbar=no,hidden=yes','closebuttoncaption=Return');
ref.addEventListener('loadstop', function(){
var f_el_tname = ref.document.body.getElementById("l_fdb");
//the above gives an error
});
var ref = cordova.InAppBrowser.open(url,'_blank','location=yes,toolbar=no,hidden=yes');
ref.addEventListener('loadstop', function() {
var code = '(function(){ return document.getElementById("l_fdb"); })()';
ref.executeScript({code: code}, function(results) {
console.log('l_fdb: ' + results);
});
});