Return This Shit

Return HITs from HIT iframe

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==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`, `*`);
  });
}