2015-01-08 48 views
0

我需要什麼Hinding的js在Viewsource不工作

  • 我需要隱藏在查看源 js代碼js代碼

    function unloadJS(scriptName) { 
        var head = document.getElementsByTagName('head').item(0); 
        var js = document.getElementById(scriptName); 
        js.parentNode.removeChild(js); 
        } 
    
        function unloadAllJS() { 
        var jsArray = new Array(); 
        jsArray = document.getElementsByTagName('script'); 
        for (i = 0; i < jsArray.length; i++){ 
        if (jsArray[i].id){ 
        unloadJS(jsArray[i].id) 
        }else{ 
        jsArray[i].parentNode.removeChild(jsArray[i]); 
        } 
        }  
        } 
    
    
         var page_count = {{count()}}; 
         if (page_count == 4) 
         { 
         dataLayer.push({'event':'mobilePromo-android'}); 
         } 
        $(document).ready(function() 
        { 
         var page_count = {{count()}}; 
         var height= $(window).height(); 
         if (page_count == 4) 
         { 
    
          $.ajax({ 
           type: "GET", 
           url: "http://times.com/mobilepopuptracker?from=android", 
    
          }); 
    
          $('body').html('<div class="row flush aligncenter popbx" style="height:'+height+'px"><div class="12u">');    
    
         } 
         else 
         { 
    
         } 
    
    
        }); 
         function redirect() 
         { 
    
           var a=$(location).attr('href'); 
           window.location.href=a; 
         } 
    
        </script> 
    

    問題

    • 我需要在視圖源中隱藏js代碼。

調試

  • 我已經reffred上http://www.sitepoint.com/hide-jquery-source-code/的鏈接找到解決方法。

  • 儘管代碼仍然被查看。

  • 任何建議是最受歡迎的。

  • 儘管我們知道我們無法停止查看源代碼中的js,但仍然必須有一些技巧。

+0

我認爲隱藏JS並不是(完全)可能的,但是一些「強大」縮小也可以是一樣的) – nettutvikler

+1

任何有一點開發經驗的人都可以閱讀你的代碼。還有誰會關心它?你爲什麼要這樣?希望不是爲了安全。 –

回答

1

使用在線Google Closure Compiler service,它會使你的代碼幾乎不可讀,通過重命名變量和函數名。例如:

生JS

function toggleDisplay(el){ 
    if (!el) return; 
    el.style.display = (el.style.display==='none') ? 'block' : 'none'; 
} 

關閉編譯

function toggleDisplay(a){a&&(a.style.display="none"===a.style.display?"block":"none")}; 

的JavaScript美化

function toggleDisplay(a){ 
    a&&(a.style.display="none"===a.style.display?"block":"none") 
}; 

這樣做也減少了腳本的大小,有助於提高網頁的加載時間。

你仍然可以閱讀腳本,但是它更難以理解,並且在使用JavaScript閉包等東西時會變得非常複雜。

+2

即使你這樣做了,你也可以通過美化工來運行它,代碼將幾乎可讀,除了重命名的變量 –

+0

是的,但是它更難以理解單字母變量和函數名稱。它還做了一些其他的事情,比如合併數組和改變像** var found = false **到** var f =! - 1 ** –

+1

當然,我仍然認爲這是徒勞的練習。你的例子表明,對於那些對這門語言具有相當的知識的人來說,未縮小的代碼並不難讀 –

0

你不能真正隱藏你的js代碼。您可以對其進行混淆處理(即使難以閱讀),但與PHP或Perl(在服務器端處理)不同,JS在客戶端的瀏覽器中運行。因此,客戶始終擁有其副本,並且可以隨時查看該來源。