在我的应用程序中,我正在尝试使用InAppBrowser的executeScript方法执行一些脚本。记住我正在使用Ionic Framework v2,这是我的代码:
browser.executeScript({
code: `
$(".rodape.geral table tbody tr:nth-child(2) td:nth-child(1) div:nth-child(1)").css("min-width","auto");
$(".rodape.geral table tbody tr:nth-child(2) td:nth-child(1) div:nth-child(1) div:nth-child(1)").css("width","auto");
$(".rodape.geral table tbody tr:nth-child(1) td:nth-child(2) table:nth-child(1)").attr("align","center");
`
}).then((e)=>{ console.log('JS adicionado.'); }).catch((e)=>{ console.log('Erro ao adicionar JS. '+e); });
为什么代码无效并且没有返回回调? THKS。
答案 0 :(得分:1)
确保此代码位于inAppBrowser的loadstop
事件侦听器中。
在运行JS之前,需要加载浏览器视图。
答案 1 :(得分:0)
问题是executeScript
本身就是一个承诺,所以为了使你的代码能够运行,你必须写下这样的东西:
$rootScope.$on(’$cordovaInAppBrowser:loadstop’, function (e, event) {
browser.executeScript({
code: `
$(".rodape.geral table tbody tr:nth-child(2) td:nth-child(1) div:nth-child(1)").css("min-width","auto");
$(".rodape.geral table tbody tr:nth-child(2) td:nth-child(1) div:nth-child(1) div:nth-child(1)").css("width","auto");
$(".rodape.geral table tbody tr:nth-child(1) td:nth-child(2) table:nth-child(1)").attr("align","center");
`
}).then((e)=>{ console.log('JS adicionado.'); }).catch((e)=>{ console.log('Erro ao adicionar JS. '+e); });
});
答案 2 :(得分:0)
我发现您需要在loadstop
事件中添加此代码,以便在网页加载后添加脚本或样式。
browser.on('loadstop').subscribe(event => {
browser.executeScript({
code : 'your javascript code'
}).then(() => {
console.log("in executeScript then()");
});
});