我使用名为Window postMessage Plugin的插件和UploadiFive将文件上传到我的服务器,并将文件链接插入到其上嵌有我的上传脚本的网页上。它适用于桌面设备(在Firefox(v26)和Chrome(v31)中测试过)。
当我在我的iPad(使用Safari运行iOS 7.0.4)和我的Android手机(运行Android 4.3股票浏览器)上尝试时,文件按预期上传,但不会按原样插入文件。任何想法为什么它在我的桌面上工作但不是移动?
这是我的代码:
JS
这个JS是从上传脚本获取文件名,目标是插入文件的位置,然后根据文件类型插入代码。
pm.bind("message5", function(data) {
var ext = data.split('.').pop().toLowerCase();
myFrame = $('#editorf').contents().find('body');
nestedFrame = myFrame.find('#re_contentIframe').contents().find('body');
if (ext=='jpg' || ext=='jpeg' || ext=='bmp' || ext=='gif' || ext=='png' || ext=='tiff' || ext=='tif'){
nestedFrame.append($.parseHTML(' <br><br> <a href="http://www.domain.net/uploads/' + data + '" class="fancybox"><img style="max-width:250px;" class="forum-image" src="http://www.domain.net/uploads/' + data +'"/></a>'));
} else if (ext=='pdf') {
nestedFrame.append($.parseHTML(' <br><br> <a target="_blank" href="http://www.domain.net/uploads/' + data + '">View Uploaded PDF</a>'));
} else {
nestedFrame.append($.parseHTML(' <br><br> <a href="http://www.domain.net/uploads/' + data + '">Download Uploaded File</a>'));
}
});
UploadiFive JS
$('#file_upload').uploadifive({
'formData' : {
'timestamp' : '<?php echo $timestamp;?>',
'token' : "<?php echo md5('unique_salt' . $timestamp);?>"
},
'uploadScript' : '/js/uploadify/uploadify.php',
'onUploadComplete' : function(file, data) {
var fileUploaded = data;
pm({
target: window.parent,
type: "message5",
data:fileUploaded
});
}
});
如何让它在移动设备上运行?
注意:我使用的是jQuery 2.0.3。
的更新 的
为了尝试和调试问题,我尝试使用Edge Inspect。当我通过Edge Inspect运行代码时,它工作正常!从我在iOS和Android上可以看出,它在股票浏览器中不起作用。我很困惑为什么。