2011-08-10 3 views
1

テキストボックスにURLを使用する代わりに、javascriptが現時点のURLを渡す必要があります。 現在、私はテキストボックスとボタンを持っています。私はテキストボックスからURLを取得して、それをJavaScriptで使用しています。私はボタンとスクリプトを押してコードがあるページを自動的に取得したいだけです。たとえば、www.mypage.comにコードがある場合は、javascriptボタンをクリックしてURLを自動的に取得して再生したい場合があります。ここで は、私が使用しています完全なコードです:事前にjavascriptは、テキストボックスのデータではなくパラメータとして現在のURLを渡します。

<!DOCTYPE html> 
<html> 
    <head> 
     <title></title> 


     <script type="text/javascript" src="External/base64.js"></script> 
     <script type="text/javascript" src="External/canvas2image.js"></script> 
     <script type="text/javascript" src="External/jquery-1.6.2.min.js"></script> 
     <script type="text/javascript" src="build/html2canvas.js?221"></script> 
     <script type="text/javascript" src="build/jquery.plugin.html2canvas.js"></script> 
     <script type="text/javascript" src="http://www.hertzen.com/js/ganalytics-heatmap.js"></script> 
     <script type="text/javascript"> 

      var date = new Date(); 
      var message, 
      timeoutTimer, 
      timer; 

      var proxyUrl = "http://html2canvas.appspot.com"; 

      function addRow(table, field, val) { 
       var tr = $('<tr />').appendTo($(table)); 

       tr.append($('<td />').css('font-weight', 'bold').text(field)).append($('<td />').text(val)); 



      } 

      function throwMessage(msg, duration) { 

       window.clearTimeout(timeoutTimer); 
       timeoutTimer = window.setTimeout(function() { 
        message.fadeOut(function() { 
         message.remove(); 
        }); 
       }, duration || 2000); 
       $(message).remove(); 
       message = $('<div />').html(msg).css({ 
        margin: 0, 
        padding: 10, 
        background: "#000", 
        opacity: 0.7, 
        position: "fixed", 
        top: 10, 
        right: 10, 
        fontFamily: 'Tahoma', 
        color: '#fff', 
        fontSize: 12, 
        borderRadius: 12, 
        width: 'auto', 
        height: 'auto', 
        textAlign: 'center', 
        textDecoration: 'none' 
       }).hide().fadeIn().appendTo('body'); 
      } 

      $(function() { 

       $('ul li a').click(function (e) { 
        e.preventDefault(); 
        $('#url').val(this.href); 
        $('button').click(); 
       }) 

       var iframe, d; 




       $('input[type="button"]').click(function() { 
        $(iframe.contentWindow).unbind('load'); 
        $(iframe).contents().find('body').html2canvas({ 
         canvasHeight: d.body.scrollHeight, 
         canvasWidth: d.body.scrollWidth, 
         logging: true 

        }); 

       }); 

       $('button').click(function() { 

        $(this).prop('disabled', true); 
        var url = $('#url').val(); 
        $('#content').append($('<img />').attr('src', 'loading.gif').css('margin-top', 40)); 

        var urlParts = document.createElement('a'); 
        urlParts.href = url; 

        $.ajax({ 
         data: { 
          xhr2: false, 
          url: urlParts.href 

         }, 
         url: proxyUrl, 
         dataType: "jsonp", 
         success: function (html) { 


          iframe = document.createElement('iframe'); 
          $(iframe).css({ 
           'visibility': 'hidden' 
          }).width($(window).width()).height($(window).height()); 
          $('#content').append(iframe); 
          d = iframe.contentWindow.document; 

          d.open(); 

          $(iframe.contentWindow).load(function() { 

           timer = date.getTime(); 

           $(iframe).contents().find('body').html2canvas({ 
            canvasHeight: d.body.scrollHeight, 
            canvasWidth: d.body.scrollWidth, 
            logging: true, 
            proxyUrl: proxyUrl, 
            logger: function (msg) { 
             $('#logger').val(function (e, i) { 
              return i + "\n" + msg; 
             }); 

            }, 
            ready: function (renderer) { 
             $('button').prop('disabled', false); 
             $("#content").empty(); 
             var finishTime = new Date(); 

             var table = $('<table />'); 
             $('#content') 
             .append('<h2>Screenshot</h2>') 
             .append(renderer.canvas)          
             .append(table); 

             Canvas2Image.saveAsJPEG(renderer.canvas); 



            } 

           }); 

          }); 

          $('base').attr('href', urlParts.protocol + "//" + urlParts.hostname + "/"); 
          html = html.replace("<head>", "<head><base href='" + urlParts.protocol + "//" + urlParts.hostname + "/' />"); 
          if ($("#disablejs").prop('checked')) { 
           html = html.replace(/\<script/gi, "<!--<script"); 
           html = html.replace(/\<\/script\>/gi, "<\/script>-->"); 
          } 
          // console.log(html); 
          d.write(html); 
          d.close(); 
         } 
        }); 
       }); 
      });   
     </script>  
     <base /> 
    </head> 
    <body>   
     <div style="float:left;width:500px;"> 
      <label for="url">Website URL:</label> 
      <input type="url" id="url" value="http://www.google.com" /><button>Get screenshot!</button> 
      <!-- <input type="button" value="Try anyway" />--><br /> 
      </div>  
     <div style="clear:both;"></div>   
     <div id="content"></div> 
    </body> 
</html> 

おかげで、Laziale

答えて

2

をパラメータとして現在のURLを渡すには、電流を取得するには、次のいずれかの方法を使用することができるはずですURL:

  • document.URL
  • window.location
  • window.location.href

テキストボックスの値とは反対に、現在のURLを使用して、あなたの$('button').click()イベントに次のように変更するには:

var url = $('#url').val(); 

へ:

var url = document.URL; //or any of the other suggestions 
+0

または 'window.locationの' – Mrchief

+0

または' window.location.href' – Shaz

+0

ありがとうございました - そこにそれらを追加しました。 –

関連する問題