2015-06-26 31 views
1

我已經在使用捆綁和縮小,但每個頁面中都有一些javascript代碼,它們還包含服務器端<% %>標籤。我嘗試在線JavaScript壓縮器,但他們只是刪除這些標籤和它們內的一切。 有沒有辦法呢?縮小包含服務器端標籤的javascript

示例代碼:

if('<%=id%>'=='0'){ 
        $.get('/ajax/getnameinfo.aspx?l=<%=Settings.LanguageID%>&n=' + $('#name').val(), function (d) { 
         $('.wait').remove(); 
         var a = $(d).children().first(); 
         if (a.length == 0) { 
     }      $('form').submit(); 
    }); 
} 
+2

理想情況下:1.不要在新頁面中創建類似的東西。 2.在任何現有頁面中,將邏輯轉換爲一個函數,該函數接受單獨的'.js'文件中的參數,並且只需調用該函數即可替換頁面中的邏輯。然後,捆綁並縮小'.js'文件。 (在這個過程中,避免創建多個全局變量;您最多隻需要一個:具有各種功能的對象作爲屬性。) –

+1

非常好的想法,非常感謝@ T.J.Crowder –

回答

2

把你生成的頁面在這個地方:

window._server = {id: '<%=id%>', languageId: '<%=Settings.LanguageID%>'}; 

和修改JS到:

if(_server.id=='0'){ 
       $.get('/ajax/getnameinfo.aspx?l='+_server.languageId+'&n=' + $('#name').val(), function (d) { 
        $('.wait').remove(); 
        var a = $(d).children().first(); 
        if (a.length == 0) { 
    }      $('form').submit(); 
}); 

你可以用這明確任何變量替換_ SERVER綁定到js文件。如果你想用你的javascript同時使用asp驅動和js驅動參數,你可以考慮使用外部數據源(一個傳遞給構造函數的對象)。