Javascript 以编程方式单击按钮-JS

Javascript 以编程方式单击按钮-JS,javascript,Javascript,我在其他网络应用程序中也看到过这种情况,但我对Javascript还相当陌生,自己无法真正理解这一点。我想以编程的方式创建一个谷歌的社交网站。但是,在官方API中,创建挂起的唯一方法是在页面上包含挂起按钮 我想做的是让一个用户点击另一个用户的img,然后以这种方式打开这个链接。我似乎可以捕捉到这种点击,然后在背景中“点击”这个链接按钮。然而,我不太擅长Javascript,所以我不知道如何实现这一点 编辑 我在下面尝试了mohamedrais的解决方案,但没有成功。这和按钮的等级有关吗 这是按

我在其他网络应用程序中也看到过这种情况,但我对Javascript还相当陌生,自己无法真正理解这一点。我想以编程的方式创建一个谷歌的社交网站。但是,在官方API中,创建挂起的唯一方法是在页面上包含挂起按钮

我想做的是让一个用户点击另一个用户的img,然后以这种方式打开这个链接。我似乎可以捕捉到这种点击,然后在背景中“点击”这个链接按钮。然而,我不太擅长Javascript,所以我不知道如何实现这一点

编辑

我在下面尝试了mohamedrais的解决方案,但没有成功。这和按钮的等级有关吗

这是按钮的代码,取自带有添加的
id
的Hangouts文档:

 <script type="text/javascript" src="https://apis.google.com/js/platform.js"></script>
        <div class="g-hangout" id="hangout-giLkojRpuK"
                                data-render="createhangout">
        </div>
当我单击
img
时,“in onclick”被记录,因此函数被调用。然而,什么都没有发生——闲逛没有启动

当我直接点击Hangouts按钮时,它会启动Hangouts。但是,我希望最终隐藏它并从图像执行单击

这是
img
上方的“悬挂”按钮的图片:

window.onload = function() {
    var userImage = document.getElementById('imageOtherUser');
    var hangoutButton = document.getElementById("hangoutButtonId");
    userImage.onclick = function() {
       hangoutButton.click(); // this will trigger the click event
    };
};


这就行了

虽然这个问题已经很老了,但这里有一个答案:)

通过使用jQuery的 及

所以这可能是代码:

// Set the global variables
var userImage = $("#img-giLkojRpuK");
var hangoutButton = $("#hangout-giLkojRpuK");

$(document).ready(function() {
    // When the document is ready/loaded, execute function

    // Hide hangoutButton
    hangoutButton.hide();

    // Assign "click"-event-method to userImage
    userImage.on("click", function() {
        console.log("in onclick");
        hangoutButton.click();
    });
});

我从来没有和人交往过。我遇到了同样的问题与FB登录,我是如此努力,让它点击编程。后来,我发现sdk不允许您以编程方式单击按钮,因为某些安全原因。用户必须实际单击按钮。异步asp文件上载按钮也会发生这种情况。所以,请检查“闲逛”是否允许您通过编程方式单击Button。以上所有代码均正确,应能正常工作。
如果你深入挖掘,你会发现我的答案是适合你的情况的正确答案。

这里的其他答案取决于用户最初的点击(在图像上)。这对于OP细节的细节很好,但不一定是问题标题


有一个答案解释了如何通过在按钮(或任何元素)上触发单击事件来完成此操作。

当使用JavaScript访问HTML元素时,当访问该元素的代码运行时,该元素很可能不在页面上,因此就JavaScript而言不在dom中

即使您可以在浏览器窗口中直观地看到HTML元素,或者在onload方法中设置要调用的代码,也可能发生此问题

我在编写代码以在检索cookies后重新填充页面上的特定div元素后遇到了这个问题

显然发生的是,即使HTML已经加载并由浏览器输出,JavaScript代码仍在页面加载完成之前运行

这个问题的解决方案可能是JavaScript错误,将要运行的代码放在一个计时器中,该计时器将代码运行延迟400毫秒左右。您需要对其进行测试,以确定运行代码的速度

我还指出,在尝试为元素赋值之前,需要对元素进行测试

window.setTimeout(函数(){
if(document.getElementById(“book”)){
/*代码在这里*/
}
},400/*但在400毫秒之后*/);

这可能有助于解决您的问题,也可能没有帮助,但请记住这一点,并理解浏览器并非总是按预期运行。

@muhammadaifullah:jQuery是Javascript。它是一个Javascript库。您的建议很有价值,但请不要混淆术语。@muhammadisaifullah Jquery不是简单事件处理所必需的。只有在进行广泛的DOM操作时,我觉得jquery才是一个更好的选择,因为它提高了生产效率,并照顾到了浏览器compatibility@Ramsel你有没有想过这件事?我遇到了同样的问题。似乎无法触发点击由hangouts API呈现的此按钮。您的代码在第5行有一个输入错误:变量名是
HangButton
,而不是
handoutButton
。我尝试了此解决方案,但没有成功。见我的编辑上面。这和“按钮”的形式有关吗?我认为这个解决方案取决于是否有jQuery库,这就是为什么@Ramsel没有成功尝试的原因。
// Set the global variables
var userImage = $("#img-giLkojRpuK");
var hangoutButton = $("#hangout-giLkojRpuK");

$(document).ready(function() {
    // When the document is ready/loaded, execute function

    // Hide hangoutButton
    hangoutButton.hide();

    // Assign "click"-event-method to userImage
    userImage.on("click", function() {
        console.log("in onclick");
        hangoutButton.click();
    });
});