I want to have an instance of both TinyMCE textarea and pluplupload custom file uploader on on web page. The problem is that in my Firefox 3.6 or Google Chrome they just don't work together. I checked with IE8 here it works fine. I tried both versions of TinyMCE - the standard and jQuery.
I tried debugging the initialization of plupload using FireBug (so that tinymce was initialized first) and it started to work. Then I tried to setTimeout for 2 seconds on the call to initialize plupload and again it worked.
This is very odd behavior. Is it only my issue or has anybody encountered the same?
I use jQuery 1.4.2 but I also checked with 1.3.2 - the same. Here is the javascript that I use to initialize those libraries:
$(function() {
var plUploader = new plupload.Uploader({
runtimes: 'html5,flash,silverlight',
browse_button: 'pickfiles',
max_file_size: '10mb',
url: '<%= Url.Action<FilesController>(c => c.Upload()) %>',
resize: { width: 320, height: 240, quality: 90 },
flash_swf_url: '/js/plupload/plupload.flash.swf',
silverlight_xap_url: '/js//plupload/plupload.silverlight.xap',
filters: [
{ title: "Image files", extensions: "jpg,gif,png" },
{ title: "Zip files", extensions: "zip" }]
});
plUploader.bind('Init', function(up, params) {
$('#filelist').html("<div>Current runtime: " + params.runtime + "</div>");
});
plUploader.bind('FilesAdded', function(up, files) {
$.each(files, function(i, file) {
$('#filelist').append(
'<div id="' + file.id + '">' +
file.name + ' (' + plupload.formatSize(file.size) + ') <b></b>' +
'</div>');
});
});
plUploader.bind('UploadProgress', function(up, file) {
$('#' + file.id + " b").html(file.percent + "%");
});
$('#uploadfiles').click(function(e) {
plUploader.start();
e.preventDefault();
});
plUploader.init();
$('#Description').tinymce({
// Location of TinyMCE script
script_url: '/js/tiny_mce/tiny_mce.js',
// General options
theme: 'simple',
language: 'pl'
});
});
the scripts:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="/js/tiny_mce/jquery.tinymce.js"></script>
<script type="text/javascript" src="/js/plupload/source/plupload.js"></script>
<script type="text/javascript" src="/js/plupload/source/plupload.silverlight.js"></script>
<script type="text/javascript" src="/js/plupload/source/plupload.flash.js"></script>
<script type="text/javascript" src="/js/plupload/source/plupload.html5.js"></script>
and the html:
<textarea rows="2" name="Description" id="Description"></textarea>
<div>
<div id="filelist">No runtime found.</div>
<br />
<a id="pickfiles" href="#">[Select files]</a>
<a id="uploadfiles" href="#">[Upload files]</a>
</div>
I've actually been trying to do the same thing. The issue I ran into with using both of them is that they each require a form element to work (tinyMCE does not, but we need it to with our implementation).
The workaround I came up with for this was putting plupload in an iframe. Doing this allows it to operate off of a separate page and may resolve whatever conflicts you're facing.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With