2014-11-26 3 views
0

Я использую ZClip для копирования текста в поле ввода, нажав на кнопку. В настоящее время это работает отлично, но я бы хотел, чтобы данные в поле копировались по-разному, если пользователь удерживает клавишу «Alt», когда они нажимают, но я не уверен, как определить, было ли нажато altKey, так как событие zClip_copy не поддерживает event.altKey.ZClip - Копирование данных путем нажатия Alt на кнопку

Это код, как это в настоящее время составляет:

$('#copyBtn_' + _tabID).zclip({ 
    path:'../scripts/ZeroClipboard.swf', 
    copy:function() {    
     //constructs the data and puts it in the #copyData_<tabID> input field 
     $("#copyBtn_" + _tabID).trigger("click");                        
     return $("#copyData_" + _tabID).html(); 
    } 
}); 

Это click событие, которое получает срабатывает:

document.getElementById("copyBtn_"+_tabID).onclick = function(event){ 
    copyTextToClipboardButton(event); 
}; 

В copyTextToClipboardButton(event) функция проверяет event.altKey, чтобы увидеть, если пользователь нажав Alt ключ. Возможно ли получить оригинал MouseEvent до того, как будет запущена функция zClip copy, чтобы я мог запустить copyTextToClipboardButton(event) с использованием оригинала MouseEvent заранее? Таким образом, мне не придется вручную запускать событие jQuery, как сейчас, поэтому event.altKey сохранен.

Надеюсь, что имеет смысл. Спасибо заранее!

ответ

0

zClip работает с использованием zeroclipboard Adobe Flash plug-in для фактической обработки кликов и копирования в буфер обмена (поскольку такая функциональность не разрешена в обычном Javascript). Это по соображениям безопасности. Плагин Adobe Flash позволяет копировать в буфер обмена, если он непосредственно является результатом действия пользователя в плагине Adobe Flash, например щелчком. Это не допустит иначе.

Итак, для поддержки чего-то вроде Alt-клика, но не обычного щелчка, плагин Adobe Flash, который использует zclip, должен будет поддерживать эту возможность напрямую.

Когда я смотрю на zeroclipboard source code, я не вижу такой возможности, поэтому я не думаю, что это возможно без изменения источника zeroclipboard и создания новой Flash-программы .SWF.

+0

Спасибо за быстрый ответ! Я подумал, не так ли. Возможно, переосмысление дизайна в порядке. –