Skip to content

Instantly share code, notes, and snippets.

@ezza
Forked from anonymous/autojoin.user.js
Created June 18, 2013 01:13
Show Gist options
  • Save ezza/5801906 to your computer and use it in GitHub Desktop.
Save ezza/5801906 to your computer and use it in GitHub Desktop.
// ==UserScript==
// @name G+ Hangouts Autojoin
// @description Automatically click the join button when loading a hangout
// @include https://plus.google.com/hangouts/_/*
// @match https://plus.google.com/hangouts/_/*
// @version 0.1.0
// ==/UserScript==
(function(){
function addJQuery(callback)
{
var script = document.createElement("script");
script.setAttribute("src", "https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js");
script.addEventListener('load', function()
{
var script = document.createElement("script");
script.textContent = "(" + callback.toString() + ")();";
document.body.appendChild(script);
}, false);
document.body.appendChild(script);
}
function checkForPrompt()
{
function simulate(target, evtName)
{
evt = document.createEvent("MouseEvents");
evt.initMouseEvent(evtName, true, true, document.defaultView, 0, 0, 0, 0, 0, false, false, false, false, 0, target);
target.dispatchEvent(evt);
}
function simulateClick(target)
{
simulate(target, "mouseover");
simulate(target, "mousedown");
simulate(target, "mouseup");
simulate(target, "mouseout");
}
$('div[role="button"]').each(function(idx, item) // For each div with attribute role = "button"
{
if ($(item).html().indexOf("Join") >= 0) // Correct button found
{
simulateClick(item);
}
else
{
setTimeout(checkForPrompt, 1000); // Try again in a second
}
});
}
function init()
{
addJQuery(checkForPrompt);
}
setTimeout(init, 1000); // Start after 1 second
})();
@ericcj
Copy link

ericcj commented Feb 4, 2015

this was eventually crashing hangouts for me since calls to setTimeout for every button that is not Join fan out exponentially, my fork seems to fix that: https://gist.github.com/ericcj/eebc7a04d6d80e93a1c9

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment