我在wordpress网站的主页上有一个按钮。现在它只是打开另一页。当用户实际点击此按钮时,我还希望在新打开的页面上执行一些虚拟点击操作。可能我错过了一些东西。
主页上的按钮是这样的:
<a class="btn" href="http://localhost/mysite/anotherpage/">Go to another page</a>
Jquery代码是(我使用延迟让新页面加载(它没有工作:()):
$("#menu-invite-section btn").on("click", function () {
$(document).delay(700).find($("#another-button")).click();
});
我尝试了.click()
和.trigger("click")
。
提前感谢大家!
答案 0 :(得分:1)
如果链接在同一个窗口中,则无法进行此操作 - 当您想要触发点击的按钮存在时,尝试单击它的代码将消失(因为新页面已替换了包含脚本的页面。
如果链接以新窗口或标签为目标,您可以保留对window.open
对象的引用并在其中进行搜索:
$("a.btn").click(function(e) {
e.preventDefault();
var newWindow = window.open($(this).attr("href"));
newWindow.addEventListener('load', function() { // don't use arbitrary setTimeout values when you can listen for a real event
$(newWindow.document).find('#another-button').trigger('click');
});
});
请注意,CORS限制意味着只有在页面位于同一域和真实服务器上时才会有效(它不适用于file://
网址。)
答案 1 :(得分:-1)
检查一下,
class AuthZoneController < ApplicationController
include Current
before_action :authenticate_user
around_action :set_current_user
private
def set_current_user
Current.user = current_user
yield
ensure
# to address the thread variable leak issues in Puma/Thin webserver
Current.user = nil
end
end
# /app/controllers/concerns/current.rb
module Current
thread_mattr_accessor :user
end
$('.btn').click(function (e) {
e.preventDefault(); // prevent default anchor behavior
var goTo = $('#another-button').attr("href"); // store anchor href
// do something while timeOut ticks ...
setTimeout(function(){
window.location = goTo;
},700);
});
希望这会对你有所帮助。