0

jQuery と Phonegap を使用してアプリを作成しています

私の JavaScript コードでは、$.ajax を呼び出して、アプリのセクションの一部を Web サーバーに要求します。これらのセクションは基本的に、DOM に挿入する HTML スニペットです。これらのスニペットには、セクション自体に関連する JavaScript コードが含まれています (これは動的に構築されるため、アプリのメインの js ファイルには含めません)。

このコードを使用してこれらのセクションを呼び出しています。

//...
$.ajax(
            url,
            {
                type: 'GET',
                success: function(data){
                    $('#content').html(data);
                },
                error: function(jqXHR, textStatus, errorThrown) {
                    //...
                }
            });
//...

Web サーバーから返されるデータは次のようになります。

<div>...<div>
<script type="text/javascript">
$(document).ready(function() {
   //some code to be executed when this section loads
   //this is dynamically generated
});
</script>

問題は、このコードを実行すると、SCRIPT タグが DOM に挿入されない (html 部分のみ) ことです。

これは Chrome では問題なく動作しますが、エミュレーターで (Ripple を使用して) テストすると動作しません。

セキュリティチェックの可能性があると思いますが、これについてはわかりません。

私のconfig.xmlにはこれがあります:

<?xml version="1.0" encoding="UTF-8"?>
<widget xmlns="http://www.w3.org/ns/widgets" 
        xmlns:gap = "http://phonegap.com/ns/1.0" 
        version="0.1.1"
        versionCode="1"
        id="com.company.prod">  
    <name>...</name>
    <author>...</author>
    <description>...</description>



    <gap:splash src="splash.png" />

    <content src="index.html"/>
    <access uri="*" subdomains="true"/>

    <feature name="http://api.phonegap.com/1.0/battery"/> 
    <feature name="http://api.phonegap.com/1.0/geolocation"/> 
    <feature name="http://api.phonegap.com/1.0/network"/>
    <feature name="http://api.phonegap.com/1.0/notification"/>

</widget>

なぜこれが起こるのか分かりますか?

4

1 に答える 1

0

私が間違っていなければ、これは、innerHTML を追加または使用して script タグを挿入できないためです。このajax呼び出しの場所を挿入が行われる場所に変更してから、行を変更することをお勧めします

$('#content').html(data);

document.write(data);
于 2012-06-27T22:43:20.537 に答える