Greasy Fork is available in English.

Tampermonkey Support Library

to reduce repetition in creating scripts for Tampermonkey support

Versão de: 04/11/2016. Veja: a última versão.

Este script não deve ser instalado diretamente. Este script é uma biblioteca de outros scripts para incluir com o diretório meta // @require https://update.greasyfork.org/scripts/23115/156077/Tampermonkey%20Support%20Library.js

var tm = {
	addGlobalStyle: function(css) {
	    var head, style;
	    head = document.getElementsByTagName('head')[0];
	    if (!head) { return; }
	    style = document.createElement('style');
	    style.type = 'text/css';
	    style.innerHTML = css;
	    head.appendChild(style);
	},
	log: function(msg) {
		console.log('Tampermonkey: ' + msg);
	},
	selectText: function (targetClass) {
		var textToCopy, range;
		try {
			if (document.selection) {
				range = document.body.createTextRange();
				range.moveToElementText(document.getElementsByClassName(targetClass)[0]);
				range.select();
			} else if (window.getSelection) {
				range = document.createRange();
				range.selectNode(document.getElementsByClassName(targetClass)[0]);
				window.getSelection().addRange(range);
			}
		} catch (err) {
			tm.log('Failed to select text');
		}
	},
	sysFriendly: function(el) {
	    var text = $(el).text();
		$(el).text(text.replace(/\/|\:|\<|\>|\\|\||\*|\?/g, '-'));
	},
	ping: function (ip, callback) { // via http://jsfiddle.net/GSSCD/203/
		if (!this.inUse) {
			this.status = 'unchecked';
			this.inUse = true;
			this.callback = callback;
			this.ip = ip;
			var _that = this;
			this.img = new Image();

			this.img.onload = function () {
				_that.inUse = false;
				_that.callback('responded');
			};

			this.img.onerror = function (e) {
				if (_that.inUse) {
					_that.inUse = false;
					_that.callback('error', e);
				}
			};
			
			this.start = new Date().getTime();
			this.img.src = "http://" + ip;
			this.timer = setTimeout(function () {
				if (_that.inUse) {
					_that.inUse = false;
					_that.callback('timeout');
				}
			}, 1500);
		}
	},
	isTagIn: function (targetString, tags) {
		var isFound = false;
		_.each(tags, function scanTarget (tag) {
			if (targetString.toLowerCase().indexOf(tag.toLowerCase()) > -1) {
				isFound = true;
			}
		});
		return isFound;
	},
	copyTextToClipboard: function (text) {
		var copyFrom = document.createElement("textarea");
		copyFrom.textContent = text;
		var body = document.getElementsByTagName('body')[0];
		body.appendChild(copyFrom);
		copyFrom.select();
		document.execCommand('copy');
		body.removeChild(copyFrom);
	},
	waitFor: function (awaitThis, doThis, intervalSpeed = 100, maxTries = 100) {
		var currentTry = 0,
		stateLoading = function (awaitCondition) {
			if( !awaitCondition ) {
				currentTry++;
				if (currentTry < maxTries) {
				  window.setTimeout(stateLoading(awaitCondition), intervalSpeed); /* this checks the flag every intervalSpeed milliseconds*/
				} else {
				  console.log('final try');
				}
			} else {
				console.log('good');
				doThis();
			}
		};
		stateLoading(awaitThis);
	}
};