gpt4 book ai didi

javascript - Chrome 扩展 - 触发器不起作用

转载 作者:行者123 更新时间:2023-12-03 02:39:16 26 4
gpt4 key购买 nike

我尝试创建简单的Chrome扩展程序,单击弹出窗口中的按钮后,我需要将函数setInput()发送到页面,函数更改值并且我需要使用触发器('keyup'),如果我尝试在Chrome中使用此函数控制台 - 触发工作。但是如果我在弹出窗口中单击后发送此功能 - 触发器不起作用(

Chrome 扩展程序 - 触发器不起作用

enter image description here

控制台 - 触发工作

enter image description here

popup.html

<head>
<script src="popup.js"></script>
</head>
<body>
<div class="btn">Click</div>
</body>

popup.js

function sendMessage() {
chrome.tabs.query({currentWindow: true, active: true}, function (tabs){
var activeTab = tabs[0];
chrome.tabs.sendMessage(activeTab.id, {"message": "start"});
});
}

function onWindowLoad() {
chrome.tabs.executeScript(null, { file: "PageReader.js" });
}

document.addEventListener("DOMContentLoaded", function() {
var btn = document.querySelector('.btn');
btn.addEventListener('click', function() {

sendMessage();

});
});

window.onload = onWindowLoad;

PageReader.js

- in file top i include Jquery

function setInput() {
var input = $('.text input');
input.val('1111').trigger('keyup');
}

chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if( request.message === "start" ) {
setInput();
}
}
);

最佳答案

感谢大家的帮助,我找到了答案,我删除了 jQuery,并创建了事件“keyup”

旧:

var input = $('.text input');
input.val('1111').trigger('keyup');

新:

var evt = document.createEvent('KeyboardEvent');
evt.initEvent('keyup', true, true);
var input = document.querySelector('.text input');
input.value = '1111';
input.dispatchEvent(evt);

关于javascript - Chrome 扩展 - 触发器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48396314/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com