【问题标题】:How I can pass a value in localStorage to InAppBrowser using executescript event如何使用 executescript 事件将 localStorage 中的值传递给 InAppBrowser
【发布时间】:2016-03-23 20:19:02
【问题描述】:

我的插件 InAppBrowser 有问题。

我想从我的 ionic 应用程序中以我网站上的表单(用户名和密码)插入一个存储在 localStorage 中的值。它适用于像“test”这样的简单值,但是当我想插入像 localStorage.getItem('onlineIdStore') 这样的值时,什么都没有发生。你有解决办法吗?

我发现了一个类似的问题,但解决方案对我不起作用:Autologin with Inappbrowser on an external website

这是我的代码:

var ref = window.open('website', '_blank', 'location=no');
ref.addEventListener('loadstop', function(event) {
ref.executeScript({ code: "document.getElementById('doc_login_username').value = 'test' " }); 
   });

【问题讨论】:

  • localStorage是同步运行还是异步运行,本地存储的值是否正确存储在开发者控制台中可以查看
  • 对不起我不知道你说的同步运行是什么意思我是初学者,但是变量及其值出现在开发者控制台中,我认为问题不在于localStorage,而在于语法在执行脚本中。感谢您的帮助
  • Async 含义 localStorage 不会立即返回查询结果,您需要一个成功的处理程序。
  • 您可能正在运行它同步,这很好,但您是否检查过您的浏览器是否兼容
  • 是的,浏览器是兼容的,我在网上看到过一些例子,有些设法在localStorage值中收集网站数据,我认为相反的应该是可能的

标签: javascript ionic-framework local-storage inappbrowser


【解决方案1】:

您的问题不是 localStorage,而是您的字符串,您的变量在当前脚本中,因此您需要在将变量发送到新窗口之前评估变量,就像这样

var ref = window.open('website', '_blank', 'location=no');
ref.addEventListener('loadstop', function(event) {
ref.executeScript({ code: "document.getElementById('doc_login_username').value = '"+username+"'; " }); 
});

【讨论】:

    猜你喜欢
    • 2015-10-24
    • 2017-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-14
    • 2015-03-07
    • 2020-12-29
    • 1970-01-01
    相关资源
    最近更新 更多