2013-04-09 4 views
0

HEllo all: Я должен быть полным noob - У меня есть два сценария javascript в голове моего html-файла, но я хочу скрыть номер api, а также 2-й js. Что мне нужно, чтобы написать вместо этого, чтобы эти js в другом файле, который никто не может прочитать при прямом щелчке мыши/показать исходный код, и иметь те же карты Google, которые появляются в divСкрыть javascript в голове

Я попытался поместить src = "filename .js ", но карты google не будут загружаться вообще.

Обфускание кода JS? Но как мы можем поместить его в файл на стороне? src = "obfuscated code.js" не будет загружать карты Google вообще Только поместить обфискованный код в голову, но будет ли он испорчен индексированием google?

  1. <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key= 
    ...&sensor=false"></script> 
    
  2. <script type="text/javascript"> 
        function initialize() { 
         var latlng = new google.maps.LatLng(-19.991901,57.592607); 
    
         var settings = { 
          zoom: 1, 
          disableDoubleClickZoom: true, 
          draggable: false, 
          scrollwheel: false, 
          minZoom: 1, 
          maxZoom: 18, 
          center: latlng, 
          mapTypeControl: false, 
          navigationControl: true, 
    navigationControlOptions: {style: google.maps.NavigationControlStyle.BIG}, 
          mapTypeId: google.maps.MapTypeId.ROADMAP}; 
        var map = new google.maps.Map(document.getElementById("map_canvas"), settings); 
    
    
    
         var companyImage = new google.maps.MarkerImage('images/logo.png', 
          new google.maps.Size(100,50), 
          new google.maps.Point(0,0), 
          new google.maps.Point(50,50) 
         ); 
    
          var companyShadow = new google.maps.MarkerImage('images/logo_shadow.png', 
          new google.maps.Size(130,50), 
          new google.maps.Point(0,0), 
          new google.maps.Point(65, 50)); 
    
         var companyPos = new google.maps.LatLng(-19.9913,57.592607); 
    
         var companyMarker = new google.maps.Marker({ 
          position: companyPos, 
          map: map, 
          icon: companyImage, 
          shadow: companyShadow, 
          title:"Bur-Nas Beach", 
          zIndex: 3}); 
    
    
    
    
         google.maps.event.addListener(companyMarker, 'click', function() { 
          infowindow.open(map,companyMarker); 
         }); 
        } 
    </script> 
    
+0

Ответ: Вы не можете скрыть это. – epascarello

+0

Возможный дубликат [Как я могу запутать JavaScript?] (Http://stackoverflow.com/questions/194397/how-can-i-obfuscate-javascript) – epascarello

ответ

0

Одним из раствора будет затемнять ваш файл, чтобы он не был бы человеком-читаемым. See this thread

+0

Это действительно должен был быть комментарий ... В будущем, пожалуйста, не отправляйте ссылки только на ответы - даже если они являются внутренними ссылками. – Lix

+0

Привет, Ликс, мне бы очень хотелось это сделать, но у меня пока нет достаточного количества репрессий (50 \t Оставить комментарий). Я буду иметь это в виду, когда у меня достаточно rep =) –

+0

IMO, одной строки текста, включая ссылку, недостаточно, чтобы быть ответом с или без 50 rep. FYI - единственная причина, по которой я не занимаюсь, - это то, что мне нравится ваш аватар C & H. На этот раз вы были спасены ...;) – Lix

2

Ok есть способ, вы можете сделать это, загрузите JavaScript динамически (это означает, что инъекционные тег сценария динамически корыта некоторые другие JavaScript) и удаления его впоследствии в то время как он сохраняет в памяти браузеров.

(function() { 

    var script_tag = document.createElement('script'); 
    script_tag.setAttribute("type","text/javascript"); 
    script_tag.setAttribute("src", 
     "https://maps.googleapis.com/maps/api/js?key=YOURKEYHERE"); 
    if (script_tag.readyState) { 
     script_tag.onreadystatechange = function() { // For old versions of IE 
      if (this.readyState == 'complete' || this.readyState == 'loaded') { 
       main(); 
      } 
     }; 
    } else { // Other browsers 
     script_tag.onload = main; 
    } 
    // Try to find the head, otherwise default to the documentElement 
    (document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag); 

    function removejscssfile(filename, filetype){ 
var targetelement=(filetype=="js")? "script" : (filetype=="css")? "link" : "none" //determine element type to create nodelist from 
var targetattr=(filetype=="js")? "src" : (filetype=="css")? "href" : "none" //determine corresponding attribute to test for 
var allsuspects=document.getElementsByTagName(targetelement) 
for (var i=allsuspects.length; i>=0; i--){ //search backwards within nodelist for matching elements to remove 
    if (allsuspects[i] && allsuspects[i].getAttribute(targetattr)!=null && allsuspects[i].getAttribute(targetattr).indexOf(filename)!=-1) 
    allsuspects[i].parentNode.removeChild(allsuspects[i]) //remove element by calling parentNode.removeChild() 
} 
} 



/******** Our main function called when Maps has loaded ********/ 
function main() { 
//initiate maps here 

//remove all occurences of your script on page 
    removejscssfile("https://maps.googleapis.com/maps/api/js?key=YOURKEYHERE", "js") //remove all occurences of your script on page 
    //Do some cool googlemaps based stuff here 

} 

})(); // We call our anonymous function immediately 
Смежные вопросы