2016-06-28 19 views
0

inAppBrowserプラグインを使用してロードしたWebサイトからDOM要素を選択できないようです。ログにdocument.getElementById("input")と入力すると、nullとなります。私がこれまで読んできたリソースは、要素の選択を扱うのは簡単ではありませんでしたが、私は不可能に思えます。inAppBrowser - CordovaでDOM要素を選択する

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を使用してセレクタを取得すると、inAppBrowserウィンドウではなく、index.htmlファイルからセレクタが選択されます。

*編集:現在、この作品は(1.4.0 inappbrowserコルドバ6.1.1、プラットフォームAndroidの)私にとって6.0.0

答えて

0

Frix33 GOTギアは彼の答えで回っているが、私はそれが自分自身を掲示するように問題を特定しているとは思わない。ページに挿入されたスクリプトはSTRINGでなければなりません。それ以外の場合はdocumentという別の結果が表示されます。その前にnullの結果が表示されます。

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}) 

}); 

その形式を使用して、必要に応じてあなたはできるだけ多くのスクリプト行を渡すことができます:それはあなたが{code: obj.func(obj)}を交換した場合に動作します。

1

をinAppBrowser 1.4.0を使用し、コルドバ:

... 
      ref.addEventListener('loadstop', function() { 

      ref.executeScript(
       { code: "document.getElementById('inputID')" }, 
       function (values) { 
        alert(values[0]); 
       } 
      ); 

...