2

次のjQueryを使用して、現在のページに5ページをロードしています

$('.main').load('main.cfm');
$('.bu1').load('bu1.cfm');
$('.bu2').load('bu2.cfm');
$('.bu3').load('bu3.cfm');
$('.bu4').load('bu4.cfm');

ただし、それぞれ.cfmに次のscriptタグがあります

            <script src="js/jquery.speedometer.js"></script> 
            <script src="js/jquery.jqcanvas-modified.js"></script> 
            <script src="js//excanvas-modified.js"></script> 
            <script>
            $(function(){
                $('#MDTQ').speedometer({
                    backgroundImage: "url(speedo/background-r.png)",
                    maximum: 15,
                    scale: 15,
                    suffix: ''
                });

                $('.changeSpeedometer').click(function(){
                    $('#MDTQ').speedometer({ percentage: $('.speedometer').val() || 0 });
                });
            });
            </script>

ロード中に以下のページから以下を削除する方法はありますか?

$('.bu1').load('bu1.cfm');
$('.bu2').load('bu2.cfm');
$('.bu3').load('bu3.cfm');
$('.bu4').load('bu4.cfm');

ありがとう

4

3 に答える 3

5

load は $.get のショートカットであり、コンテンツを自動的に挿入する便利な機能を備えているため、コンテンツを自分で挿入する前にそれを使用してスクリプト タグを除外できます。

$.get('bu1.cfm', function(html) {
     var markup = $($.trim(html));
     markup.find('script').remove();

     $('.bu1').html(markup);
});

編集:

src でフィルタリングするには:

$.get('bu1.cfm', function(html) {
     var markup = $($.trim(html));
     $('script[src]', markup).remove();
     $('.bu1').html(markup);
});
于 2013-07-25T14:15:00.053 に答える
1

$.get比較的新しい$.parseHTML方法で使用します。

$.get('bu1.cfm', function(html) {
    var markup = $.parseHTML(html);
    $('#bu1').html(markup);
});

デフォルト$.parseHTMLでは、マークアップ内のすべてのスクリプト タグが削除されます。

代わりに、src 属性を持つスクリプトのみを削除する場合は、2 番目の属性を使用してから結果をフィルタリングします。

$.get('bu1.cfm', function(html) {
    var markup = $($.parseHTML(html,true));
    var scripts = markup.find("script").addBack().filter("script");
    scripts.filter("[src]").remove();
    $('#bu1').html(markup).append(scripts);

});
于 2013-07-25T14:19:15.550 に答える
0

regexp の使用が考慮されるかどうかは不明です: 注: クラスの代わりに特定の ID を持つ div を使用してテストしました。また、テスト ファイルは完全な html ドキュメントでした。私は以前に cfm を使用したことがありませんが、おそらく概念は同じです。

$(function() {
    $.ajax({type: "GET",
        url: "yourfile.cfm", 
        dataType: "html",    
        error:function() { alert("error") },
        success:  function(data) {
            $("#main").html(data.replace(/<script[^>]*>[\w\W]*?<\/script>/g,""));
        }});
});
于 2013-07-25T16:01:57.680 に答える