2012-02-10 2 views
0

Моя проблема в том, что я получаю следующую ошибку, если я вызываю функцию плагина, а не в index.html.Как обрабатывать плагины для телефонных разговоров

02-10 16:48:31.606: D/PhoneGapLog(24149): Uncaught TypeError: Cannot call method 'toDataURL' of undefined 

Я хочу использовать холст плагин, он работает в index.html, но не на других страницах ... как я должен изменить этот вызов:

window.plugins.canvas.toDataURL(canvas, "image/png", success, failure); 

также имеют те же проблемы с другими плагинами, - как их реализовать на связанных страницах?

рассматривает

кода:

<body> 
    <div data-role="page" id="some_id">  

    <style type="text/css"> 
     #img { 
      position:absolute; 
      top:20px; 
      left:20px; 
      width: 400px; 
      height: 400px; 
      border: 1px solid; 
      border-color: #458d91; 
      -moz-border-radius:16px; 
      -khtml-border-radius:16px; 
      font-family: Verdana, Arial, Helvetica, sans-serif; 
      font-size: 10px; 
      padding-top: 10px; 
      padding-left:10px; 
      padding-right:10px; 
      padding-bottom: 10px; 
     } 
     </style> 

    <script type="text/javascript" charset="utf-8" src="phonegap-1.4.1.js"></script> 
    <script type="text/javascript" charset="utf-8" src="jquery.min.js"></script> 
    <script type="text/javascript" charset="utf-8" src="canvas.js"></script> 
    <script type="text/javascript" charset="utf-8" src="jquery.mobile-1.0.min.js"></script> 

    <script type="text/javascript"> 

    try { 
     var canSave = false; 
     var b_canvas; 
     function init() { 

      document.addEventListener('deviceready', function() { 
       canSave = true; 
      }); 

      b_canvas = document.getElementById('cid'); 
      var b_context = b_canvas.getContext('2d'); 
      b_context.fillRect(50, 25, 150, 100); 
     } 
     function saveImg() { 

      if (canSave) { 

       window.plugins.canvas.toDataURL(b_canvas, "image/png", success, failure); 
       function success(arg) { 

        if (arg.size > 0) { 
         var oImgElement = document.createElement("img"); 
         oImgElement.src = arg.data; 
         document.getElementById('img').appendChild(oImgElement); 
        } else {    
         alert("Canvas Write Error: " + arg.debug); 
        } 
       } 
       function failure(arg) { 
        alert("failure: " + arg); 
       } 
      } 
     } 
    } catch(err) { alert(err); } 

    </script> 

    <br/><br/> 
    <a href="#" onclick="init();">init</a> 
    <br><br> 
    <a href="#" onclick="saveImg();">SAVE</a> 
    <div id="img" style="float: left; border: 1px dotted;"></div> 
    <br clear="both"/> 
    <div style="margin-top: 130px; float: right;"> 
     <canvas id="cid" width="300" height="225"></canvas> 
    </div> 


</div> 
</body> 

ответ

1

Вы должны загрузить плагин JavaScript и phonegap.js на каждой странице, которую вы хотите использовать плагин на.

+0

Hi Simon, thx для ответа, я рассматривал это ... Возможно init() - но я не могу сэкономить, он останавливается на функции плагина с ошибкой, размещенной в первом сообщении. Возможно, это так, как я поместил код в роль данных jquery-mobile ... mhhh ищет лучшее решение из-за body-onload ... приветствует – mboeckle

+0

- я забыл его добавить js в индекс, а также, думал только на сайте, где я называю плагин ... – mboeckle