Я пробовал этот код. Он делает то, что когда кто-то щелкнет правой кнопкой мыши на первом текстовом поле, сдвиньте фокус на второй, так что, если он выберет опцию Paste
из контекстного меню, текст будет вставлен во второй блок. A paste
Событие прикреплено ко второму ящику для предупреждения Foo.Вставить событие аномалии с jQuery в Opera
<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$('.foo').contextmenu(function() {
$('.boo').select();
return true;
});
$(".boo").bind("paste",function() { alert("Foo"); });
});
</script>
</head>
<body>
<input type = 'text' class = 'foo' />
<input type = 'text' class = 'boo' />
</body>
</html>
Он отлично работает во всех браузерах, кроме Opera. Когда вы щелкните правой кнопкой мыши и вставьте некоторый текст в первом поле, для всех этих браузеров появится предупреждение. В Opera, если вы вставляете какой-либо текст непосредственно во 2-й ящик, появляется всплывающее предупреждение. Но если вы сделаете это с помощью первого окна, то есть переместите фокус на второй, щелкнув правой кнопкой мыши по первому, так что текст буфера обмена вставлен во второй, он не выдает предупреждение, хотя вы можете четко видеть что второй ящик получил фокус, и текст вклеивается там просто отлично. Может ли кто-нибудь сказать мне, в чем проблема, и как это исправить?
паста evemt не поддерживается браузером Opera. Для Opera вы, вероятно, можете использовать событие мутации DOM, например. Событие DOMAttrModified. – dherbolt
Но если событие 'paste' не поддерживается, как вызывается предупреждение, когда вы просто фокусируетесь на втором поле и вставляете в него текст напрямую, либо через CTRL-C CTRL-V, либо выбрав« Вставить »из контекстного меню после щелчка правой кнопкой мыши? – SexyBeast
Хорошо, я не пользователь jquery, но могу себе представить, что в jQuery есть какое-то обходное/исправление для вставки, как в других фреймах. Попытайтесь исследовать, как он решается во внутренних функциях jquery. – dherbolt