1

ブラウザでこのプログラムを実行すると、失敗として応答が返されますが、Androidスマートフォンでこれを実行すると、参照エラーが発生し、変数データが​​見つかりません。コードはエミュレータでも完全に機能します。助けて

 <html>
    <head>
    <script type="text/javascript" charset="utf-8" src="phonegap-1.0.0.js"></script>

    <script type="text/javascript" charset="utf-8" src="cordova-2.4.0.js"></script>
    <script type = "text/javascript">
    function getResponse(){

    var url = "http://www.apexweb.co.in/apex_quote/phone_gap/uname_validation.asp?un=9999999999&pwd=123456789&callback=your_callback";

    var head= document.getElementsByTagName('head')[0];
        var script= document.createElement('script');
        script.type= 'text/javascript';
        script.src= url;
        head.appendChild(script);

     your_callback(data);    //here i am getting reference error, can't find  variable data

     }

    function  your_callback(data){

    var st = data.status;
    alert(st);

    }


    </script>
    </head>
    <body>
    <button input type = "button" onClick = "getResponse()"> GetResponse </button>
    </body>
    </html>
4

2 に答える 2

2

あなたのコードから私が理解したことは何でも、それにいくつかのコードを追加しました。以下の私の答えを確認してください:

また、データ変数宣言を追加し、そこから値を取得します。

<script type = "text/javascript">

   var data=""; // Declare varible here so that you can get variable in both function.
        function getResponse(){

        var url = "http://www.apexweb.co.in/apex_quote/phone_gap/uname_validation.asp?un=9999999999&pwd=123456789&callback=your_callback";

        var head= document.getElementsByTagName('head')[0];
            var script= document.createElement('script');
            script.type= 'text/javascript';
            script.src= url;
            data = head.appendChild(script); // get your script value in data variable

         your_callback(data);    //here i am getting reference error, can't find  variable data

         }

        function  your_callback(data){

        var st = data.value;
        alert('script value is: '+st);

        }


        </script>

html ファイルを assest/www フォルダーと次のコードに配置したことを確認してください。

Web ビューを使用すると、Java スクリプトと HTML ページを使用できます。

public class MainActivity extends Activity {

    WebView webView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webView = (WebView)findViewById(R.id.webView);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.setWebChromeClient(new WebChromeClient());
        webView.loadUrl("file:///android_asset/www/index.html");
//        webView.loadUrl("WebAppDemo/assets/www/index.html");



    }

}
于 2013-02-15T07:43:39.563 に答える
0

url 変数の値は、JSONP [1] 呼び出しで使用する必要があります。スタンドアロンのヘルパー ライブラリ [2] または Jquery オプション [3] があります。すべての JSONP メカニズムを手動で行う必要がないため、それらのいずれかを使用する必要があります。

phonegap.js と cordova.js の両方が含まれていることにも気付きました。最初のものを削除する必要があります。それは本当に古いです。

[1] http://en.wikipedia.org/wiki/JSONP

[2] http://pastebin.com/ADxHdCnB

[3] http://api.jquery.com/jQuery.getJSON/

于 2013-02-15T07:45:05.870 に答える