Return This Shit

Return HITs from HIT iframe

スクリプトをインストールするには、Tampermonkey, GreasemonkeyViolentmonkey のような拡張機能のインストールが必要です。

You will need to install an extension such as Tampermonkey to install this script.

スクリプトをインストールするには、TampermonkeyViolentmonkey のような拡張機能のインストールが必要です。

スクリプトをインストールするには、TampermonkeyUserscripts のような拡張機能のインストールが必要です。

このスクリプトをインストールするには、Tampermonkeyなどの拡張機能をインストールする必要があります。

このスクリプトをインストールするには、ユーザースクリプト管理ツールの拡張機能をインストールする必要があります。

(ユーザースクリプト管理ツールは設定済みなのでインストール!)

このスタイルをインストールするには、Stylusなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus などの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus tなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

(ユーザースタイル管理ツールは設定済みなのでインストール!)

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください
// ==UserScript==
// @name         Return This Shit
// @namespace    http://kadauchi.com/
// @version      1.0.2
// @description  Return HITs from HIT iframe
// @author       Kadauchi
// @icon         http://i.imgur.com/oGRQwPN.png
// @include      *
// @grant        GM_log
// ==/UserScript==

const qs = selector => document.querySelector(selector);

// Tells mturk to return the HIT if the message is recieved
const receiveMessage = event => {
  if (event.data === `ReturnThisShit`) {
	if (document.URL.match(`www.mturk.com`)) qs(`img[src="/media/return_hit.gif"]`).click();
	if (document.URL.match(`worker.mturk.com`)) qs(`.btn-secondary`).click();
  }
};

// Check if we are on mturk and that the return button exists
if (document.URL.match(`mturk.com`) && (qs(`img[src="/media/return_hit.gif"]`) || qs(`.btn-secondary`) && qs(`.btn-secondary`).textContent.match(`Return`))) {
  window.addEventListener(`message`, receiveMessage, false);
}

// Checks if we are in an iframe
if (document.self !== top) {
  document.addEventListener(`keydown`, event => {
	if (event.which === 109) window.parent.postMessage(`ReturnThisShit`, `*`);
  });
}