我正在开发一个Google Chrome扩展程序,用户可以手动上传文件。我在popup.html中创建了一个文件类型输入,并尝试读取该文件。但这不起作用,因为这是谷歌Chrome中的错误..
如果有任何其他工作,请有人建议我。我found这个,但我无法继续,因为我无法理解他们的术语。
由于
答案 0 :(得分:1)
我找不到任何解决方法来解决这个问题并以另一种方式解决它。我在发布我使用过的代码
首先在Popup页面中:
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;
});
}
}