Be careful when working with onclick
from a userscript; see the Greasemonkey pitfalls.
Use jQuery or querySelectorAll
to get the buttons and then use jQuery or addEventListener
to set your new click handler.
The following extracts the key bit from the old onclick, stores it in a data attribute and replaces the onclick with a web 2.0 handler:
var stockBtns = document.querySelectorAll ("button.wide[onclick*='window']");
for (var J = stockBtns.length - 1; J >= 0; --J) {
var oldClick = stockBtns[J].getAttribute ("onclick");
var payloadMtch = oldClick.match (/(act=.+?)';return/);
if (payloadMtch && payloadMtch.length > 1) {
var payload = payloadMtch[1];
//-- Don't use onclick!
stockBtns[J].removeAttribute ("onclick");
//-- Store payload value.
stockBtns[J].setAttribute ("data-destQry", payload);
//-- Activate click the proper way, especially for userscripts
stockBtns[J].addEventListener ("click", openNewTab, false);
}
}
function openNewTab (zEvent) {
var baseURL = "http://www.felisfire.com/possessions"
/* Or be smart and use:
var baseURL = location.protocol + "//"
+ location.host
+ location.pathname
;
*/
window.open (baseURL + "?" + zEvent.target.getAttribute ("data-destQry") );
return false;
}