2011-12-21 24 views
0

我正在开发一个Google Chrome浏览器扩展,其中用户手动上传文件。我在popup.html中创建了一个文件类型输入,并尝试读取该文件。但是,这是行不通的,因为这是在谷歌铬的错误..输入类型=在Chrome浏览器扩展中使用的备选文件

请有人建议我,如果有任何其他的工作。我found这个,但我无法继续,因为我无法理解他们的术语。

感谢

+0

提供更多的细节。什么不工作? – 2011-12-21 17:17:19

+0

@BorisSmus http://code.google.com/p/chromium/issues/detail?id=98920请看看这个......这就是问题 – Exception 2011-12-21 17:23:08

+0

我没有很好的解决方法。从选项页面提示文件? – 2011-12-21 17:29:17

回答

1

我找不到任何解决办法来解决这个问题并解决它在另一个way..Here我张贴这是我在弹出的页面中使用

首先代码:

chrome.tabs.getSelected(null, function(tab) { 
     chrome.tabs.sendRequest(tab.id, { 
       'action': 'inject' 
     }); 
}); 

在内容脚本:

chrome.extension.onRequest.addListener(function ListeningMethod(request, sender,callback) 
{ 
switch(request.action) 
{ 
    case "inject": 
      if($('body').find('#TesterItems').size() < 1) 
      { 
       $('body').prepend("<div id='TesterItems'><center><input type='file' id='xfilex'></center></div>"); 
      } 
      else 
      { 
       $('#TesterItems').html("<center><input type='file' id='xfilex'></center>"); 
       $('#TesterItems').slideToggle('slow'); 
      } 
    break; 

} 
}); 
$('#xfilex').live('change',function() 
{ 
var file = document.getElementById('xfilex').files[0]; 
if(file) 
{ 
    var reader; 
    reader = new FileReader(); 
    reader.readAsText(file, "UTF-8"); 
    reader.onload = loaded; 
} 
}); 

function loaded(evt) 
{ 
var fileString = evt.target.result; 
var str = fileString; 
if(str.length > 0) 
{ 
    chrome.extension.sendRequest({method: "passThisXML", key: str}, function(response) { 
     $('#TesterItems').html('<center><span style="padding:3px">Successfully loaded XML.</span></center>'); 
     $('#TesterItems').slideToggle('slow'); 
     var Dat = response.data; 
    }); 
} 
} 
相关问题