javascript - 使用 inAppBrowser 选择 DOM 元素 - Cordova

标签 javascript cordova inappbrowser

我似乎无法从使用 inAppBrowser 插件加载的网站中选择 DOM 元素。当我记录 document.getElementById("input") 时,它是 null。我读过的资源将选择元素视为微不足道的,但我似乎做不到。

这是我使用的代码:

var obj = {
      link: "https://www.foolink.com",
      input: "barInput",
      func: function(obj) {
          document.getElementById("input").value = obj.input;
      }
}

var ref = cordova.InAppBrowser.open(obj.link, "_blank");
ref.addEventListener('loadstop', function() {

  ref.executeScript({code:obj.func(obj)})

})

有没有人遇到过这个?使用 jquery 获取选择器可以让我从 index.html 文件中选择器,而不是 inAppBrowser 窗口。

*编辑:当前使用的是 inAppBrowser 1.4.0 和 cordova 6.0.0

最佳答案

Frix33 的回答让齿轮转动起来,但我不认为它具体指出了问题,所以发布了我自己的问题。注入(inject)页面的脚本必须是一个字符串,否则它只是由应用程序执行,这是一个不同的 document 因此之前的 null 结果。如果您将 {code: obj.func(obj)} 替换为:

var codePass = "document.getElementById('input').value = '"+ obj.input +"';"
var ref = cordova.InAppBrowser.open(obj.link, "_blank", "location=yes");
ref.addEventListener('loadstop', function(event) {

   ref.executeScript({code:codePass})

});

您可以使用该格式根据需要传递任意数量的脚本行。

关于javascript - 使用 inAppBrowser 选择 DOM 元素 - Cordova,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38086643/

相关文章:

cordova - 在 Phonegap 中预加载应用程序浏览器

angularjs - 使用 ionic 应用程序内的系统浏览器打开所有链接

javascript - d3js : how to bind data within a single object

javascript - 不显示任何错误,但代码不起作用

javascript - Cordova Android 应用程序停止事件

iphone - 如何使用 html/css 创建类似 App 的 header ?

javascript - Cordova Inappbrowser - window.history.back 和forward 在executescript 函数中不起作用

javascript - 如何使用 jquery 将多行文本设置为字段

javascript - 当 Bootstrap JS 低于 jQuery JS 问题时,移动菜单不会关闭

javascript - 如何使用 javascript 在移动设备中实现滑动 View ?