У меня есть расширение Google Chrome, которое извлекает данные с одного сайта и вставляет данные на другом сайте.
Для получения данных с первого сайта я использую этот код:
$('#copy').click(function() {
var newClipboard = {
"name": $('#buyercontactname').val(),
}
chrome.runtime.sendMessage({newClipboard: newClipboard});
});
Для вставки данных на другой сайт я использую этот код:
$(document).ready(function() {
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if (request.paste) {
if (!(request.clipboard.name === '')) {
var nameParts = request.clipboard.name.split(' ');
$('[id="shippingFirstName"]').val(nameParts[0])
$('[id="shippingLastName"]').val(nameParts[1]);
}
}
}
});
});
Я заменяю значение id
для второго сайта div
или input
.
Проблема:
Если я вставлю значение в div
, оно будет прекрасно работать, но если я вставлю значение в input
, оно не будет распознано, и для этого нужно нажать клавишу.
Например:
После того, как я вставлю значения:
![enter image description here](https://i.stack.imgur.com/HgN0A.png)
После того, как я нажму «Сохранить» (я получаю сообщение об ошибке, поля пусты):
![enter image description here](https://i.stack.imgur.com/yb8vZ.png)
После того, как я нажимаю клавишу на полях (даже я нажимаю «пробел»):
Элемент input
выглядит следующим образом:
<input ng-model="user.first_name" id="shippingFirstName" name="shippingFirstName" prefix-attrs-with="shipping" value="" pattern="(?!^\d+$)^.+$" autocapitalize="off" autocomplete="off" maxlength="100" xo-error-tooltip="" ng-required="true" data-test-id="user.first_name" class="ng-pristine ng-empty ng-valid-pattern ng-invalid ng-invalid-required ng-valid-maxlength hasErrorTooltipRequired ng-touched focused" required="required" aria-describedby="nbafrxk" aria-invalid="true">
Как я могу это решить?