Skip to content

Instantly share code, notes, and snippets.

Created June 18, 2013 01:12
Show Gist options
  • Save anonymous/5801903 to your computer and use it in GitHub Desktop.
Save anonymous/5801903 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
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment