我正在使用一个名为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>'));
}
});
上传五个 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 上的判断,它在股票浏览器中不起作用。我很困惑为什么。