<div class="mp-choice-order vm"><span>A</span></div>
<div class="com-mark-pq-single-content js-com-mark-pq-single-content active">积极情绪</div>
<div class="mp-choice-order vm"><span>A</span></div>
<div class="com-mark-pq-single-content js-com-mark-pq-single-content active">感谢/满意</div>
模拟点击这2个按钮,然后按CapsLock
模拟点击这2个按钮,然后点击
<div class="mark-button-left">
<div id="js_submit_btn" class="button-mark button-red">提交</div>
</div>
帮忙给出这2中模拟按键
第二种 模拟点击这2个按钮,然后模拟点击提交
function dispatch(obj) {
var e = document.createEvent('MouseEvents');
e.initEvent('click', true, true);
obj.dispatchEvent(e);
}
function getEl(sel,text) {
var arr = document.querySelectorAll(sel);
for (var i = 0; i < arr.length; i++) {
if (arr[i].innerText==text)
return arr[i];
}
}
dispatch(getEl('.com-mark-pq-single-content','积极情绪'));
dispatch(getEl('.com-mark-pq-single-content','感谢/满意'));
dispatch(document.getElementById("js_submit_btn"));
function dispatch(obj) {
var e = document.createEvent('MouseEvents');
e.initEvent('click', true, true);
obj.dispatchEvent(e);
}
function getEl(sel,text) {
var arr = document.querySelectorAll(sel);
for (var i = 0; i < arr.length; i++) {
if (arr[i].innerText==text)
return arr[i];
}
}
dispatch(getEl('.com-mark-pq-single-content','积极情绪'));
setTimeout(function(){
dispatch(getEl('.com-mark-pq-single-content','感谢/满意'));
}, 2000);
setTimeout(function(){
dispatch(document.getElementById("js_submit_btn"));
}, 4000);
dispatch(document.getElementById("js_submit_btn"));
能把这个换成模拟按键CapsLock或者按键X,因为我问的2种,麻烦了
还有这个2秒、4秒能取消掉吗,就按着顺序操作可以吗
不太懂电脑麻烦了
能说下为什么要模拟按键CapsLock或者按键X吗?
因为js并不能真正的模拟键盘的按键,只能模拟触发按键的事件。
不用延时也可以,只是可能模拟点击的太快,网页反应不过来。
因为提交这个按钮有时候是灰色的,没法提交,用CapsLock或者按键X在灰色的时候也可以提交
这个提交有时候一直卡主是怎么回事
function fireKeyEvent(el, evtType, keyCode) {
var evtObj;
if (document.createEvent) {
if (window.KeyEvent) {//firefox 浏览器下模拟事件
evtObj = document.createEvent('KeyEvents');
evtObj.initKeyEvent(evtType, true, true, window, true, false, false, false, keyCode, 0);
} else {//chrome 浏览器下模拟事件
evtObj = document.createEvent('UIEvents');
evtObj.initUIEvent(evtType, true, true, window, 1);
delete evtObj.keyCode;
if (typeof evtObj.keyCode === "undefined") {//为了模拟keycode
Object.defineProperty(evtObj, "keyCode", { value: keyCode });
} else {
evtObj.key = String.fromCharCode(keyCode);
}
if (typeof evtObj.ctrlKey === 'undefined') {//为了模拟ctrl键
Object.defineProperty(evtObj, "ctrlKey", { value: false });
} else {
evtObj.ctrlKey = false;
}
}
el.dispatchEvent(evtObj);
} else if (document.createEventObject) {//IE 浏览器下模拟事件
evtObj = document.createEventObject();
evtObj.keyCode = keyCode
el.fireEvent('on' + evtType, evtObj);
}
}
function dispatch(obj) {
var e = document.createEvent('MouseEvents');
e.initEvent('click', true, true);
obj.dispatchEvent(e);
}
function getEl(sel,text) {
var arr = document.querySelectorAll(sel);
for (var i = 0; i < arr.length; i++) {
if (arr[i].innerText==text)
return arr[i];
}
}
dispatch(getEl('.com-mark-pq-single-content','积极情绪'));
dispatch(getEl('.com-mark-pq-single-content','感谢/满意'));
dispatch(document.getElementById("js_submit_btn"));
fireKeyEvent(document.getElementById("js_submit_btn"),'keydown',88); //88 是X键的编码
fireKeyEvent(document.getElementById("js_submit_btn"),'keypress',88);
fireKeyEvent(document.getElementById("js_submit_btn"),'keyup',88);
能帮忙把这2中分开下吗?代码小白,好了给您采纳
太长了看不懂怎么分开了
第一种 模拟点击这2个按钮,然后按X键
function fireKeyEvent(el, evtType, keyCode) {
var evtObj;
if (document.createEvent) {
if (window.KeyEvent) {//firefox 浏览器下模拟事件
evtObj = document.createEvent('KeyEvents');
evtObj.initKeyEvent(evtType, true, true, window, true, false, false, false, keyCode, 0);
} else {//chrome 浏览器下模拟事件
evtObj = document.createEvent('UIEvents');
evtObj.initUIEvent(evtType, true, true, window, 1);
delete evtObj.keyCode;
if (typeof evtObj.keyCode === "undefined") {//为了模拟keycode
Object.defineProperty(evtObj, "keyCode", { value: keyCode });
} else {
evtObj.key = String.fromCharCode(keyCode);
}
if (typeof evtObj.ctrlKey === 'undefined') {//为了模拟ctrl键
Object.defineProperty(evtObj, "ctrlKey", { value: false });
} else {
evtObj.ctrlKey = false;
}
}
el.dispatchEvent(evtObj);
} else if (document.createEventObject) {//IE 浏览器下模拟事件
evtObj = document.createEventObject();
evtObj.keyCode = keyCode
el.fireEvent('on' + evtType, evtObj);
}
}
function dispatch(obj) {
var e = document.createEvent('MouseEvents');
e.initEvent('click', true, true);
obj.dispatchEvent(e);
}
function getEl(sel,text) {
var arr = document.querySelectorAll(sel);
for (var i = 0; i < arr.length; i++) {
if (arr[i].innerText==text)
return arr[i];
}
}
dispatch(getEl('.com-mark-pq-single-content','积极情绪'));
dispatch(getEl('.com-mark-pq-single-content','感谢/满意'));
fireKeyEvent(document.getElementById("js_submit_btn"),'keydown',88); //88 是X键的编码
fireKeyEvent(document.getElementById("js_submit_btn"),'keypress',88);
fireKeyEvent(document.getElementById("js_submit_btn"),'keyup',88);
要模拟CapsLock键可以把上面的88改成20