0

ページでjavaScriptエラーを報告するブラウザに問題があります。このページは完全に機能していますが、ユーザーには見栄えが悪いため、javaScriptエラーが発生しないことをお勧めします。

FFで発生するエラーは次のとおりです。

Error: SyntaxError: missing } in XML expression
Source File: http://localhost/resources/adagiotips.php
Line: 14, Column: 4
Source Code:
 }); 

jQueryのgetScript()関数を使用して、javascriptとhtmlを含むコードをレンダリングするphpページをターゲットにしています。次に、このページからの出力を使用して、divの内部htmlにデータを入力します。これは私が1ページに持っているものです。

<script type="text/javascript">
    jQuery(document).ready(function(){

        jQuery.getScript('/includes/showmehow_videolist.php?sort=recent&type=desc', function(output){
            jQuery("#apple").html(output);
        });

    });
</script>

<div id="apple">content will populate here</div>

そして、「showmehow_videolist.php」には、jQuery関数といくつかのhtmlのリストを書き込むphpwhileループがあります。コードは次のようになります。

<script type="text/javascript">
jQuery(document).ready(function(){

<?PHP
$result4 = mysql_query("SELECT * FROM videos")or die(mysql_error());
while($row4 = mysql_fetch_array($result4)){
?>

        jQuery("#video_<?=$row4['vid_id']?>").fancybox({
            'width'             : <?=$new_width_parsed?>,
            'height'            : <?=$new_height_parsed?>,
            'autoScale'         : false,
            'transitionIn'      : 'elastic',
            'transitionOut'     : 'none',
            'type'              : 'iframe',
            'scrolling'         : 'no',
            'overlayColor'      : '#000',
            'overlayOpacity'    : 0.6
        });


    <?
    }//end while 
    ?>
}); //end document.ready function 


</script>


<div>some content</div>

2ページからjavascriptの部分を削除すると、FFで別のエラーが発生します。

Error: SyntaxError: XML can't be the whole program
Source File: http://localhost/resources/adagiotips.php
Line: 1136, Column: 6
Source Code:
</div>

何か案は?divのinnerhtmlにjavascript...from javascriptを入力しているため、問題が発生しますか?私が言ったように、すべてが正常に機能します。ブラウザがエラーがあると言っている理由を理解するだけです。

どんな助けでも大歓迎です、ありがとう。

/includes/showmehow_videolist.phpの出力:

<script type="text/javascript">
jQuery(document).ready(function(){


        jQuery("#video_82").fancybox({
            'width'             : 782,
            'height'            : 720,
            'autoScale'         : false,
            'transitionIn'      : 'elastic',
            'transitionOut'     : 'none',
            'type'              : 'iframe',
            'scrolling'         : 'no',
            'overlayColor'      : '#000',
            'overlayOpacity'    : 0.6
        });



        jQuery("#video_83").fancybox({
            'width'             : 782,
            'height'            : 720,
            'autoScale'         : false,
            'transitionIn'      : 'elastic',
            'transitionOut'     : 'none',
            'type'              : 'iframe',
            'scrolling'         : 'no',
            'overlayColor'      : '#000',
            'overlayOpacity'    : 0.6
        });



        jQuery("#video_84").fancybox({
            'width'             : 782,
            'height'            : 720,
            'autoScale'         : false,
            'transitionIn'      : 'elastic',
            'transitionOut'     : 'none',
            'type'              : 'iframe',
            'scrolling'         : 'no',
            'overlayColor'      : '#000',
            'overlayOpacity'    : 0.6
        });




    }); //end document.ready function 


</script>


<div style="overflow-x:hidden; overflow-y: auto; height:350px; width:725px;" id="main_div_of_video_links">







        <div class="tab1">
            <div class="tab2">
                <span class="h2_standard">5</span> <span class="sm">views</span>
            </div>
            <div class="tab3">
                 <img src="/images/icon_video_sm.gif" alt="History - Show Me How Video!" /> <a id="video_181" href="../video_pop.php?id=181" class="newAStyle">Adagio OrderEntry History</a> 

                 <!--<img src="/images/flame_sm.png" />--> <img src="/images/new_icon.png" />       


            </div>
            <div class="tab4">
                <span class="sm"><em>Added: </em>Jul 23 2012</span>
            </div>

            <div style="clear:both"></div>
        </div>







        <div class="tab1">
            <div class="tab2">
                <span class="h2_standard">5</span> <span class="sm">views</span>
            </div>
            <div class="tab3">
                 <img src="/images/icon_video_sm.gif" alt="Alternate Price Lists - Show Me How Video!" /> <a id="video_165" href="../video_pop.php?id=165" class="newAStyle">Adagio Inventory Alternate Price Lists</a> 

                 <!--<img src="/images/flame_sm.png" />--> <img src="/images/new_icon.png" />       


            </div>
            <div class="tab4">
                <span class="sm"><em>Added: </em>Jul 13 2012</span>
            </div>

            <div style="clear:both"></div>
        </div>







        <div class="tab1">
            <div class="tab2">
                <span class="h2_standard">1</span> <span class="sm">views</span>
            </div>
            <div class="tab3">
                 <img src="/images/icon_video_sm.gif" alt="Special Prices - Show Me How Video!" /> <a id="video_166" href="../video_pop.php?id=166" class="newAStyle">Adagio OrderEntry Special Prices</a> 

                 <!--<img src="/images/flame_sm.png" />--> <img src="/images/new_icon.png" />       


            </div>
            <div class="tab4">
                <span class="sm"><em>Added: </em>Jul 13 2012</span>
            </div>

            <div style="clear:both"></div>
        </div>






</div>
4

2 に答える 2

0

getScript と html() を使用する方法ではなく、代わりに load() 関数を使用する必要がありました。

jQuery('#apple').load('/includes/showmehow_videolist.php?sort=recent&type=desc');   

エラーなし;)

于 2012-08-07T09:27:26.220 に答える
0

これらの変更を試してください:

  1. 1 ページ目で、行を削除しますjQuery("#apple").html(output);。返されたスクリプトを div に埋め込む必要はありません。page2 のスクリプトは、page1 に埋め込む必要なく、jQuery によって解析および実行されます。

最初に上記を試して問題が解決しない場合は、次の 2 番目の手順も実行します。

  1. 2 ページ目で、次の行を削除します。

    < script type="text/java script"> jQuery(document).ready(function(){} < /script>

これは、jQuery.getScript を使用してフェッチされている JS が、jQuery.ready() fn のコンテキスト内および内部で既に実行されているためです。 .

于 2012-08-06T17:10:32.690 に答える