Smile@Amazon

Redirects any Amazon shopping site to its Smile representation

Tendrás que instalar una extensión para tu navegador como Tampermonkey, Greasemonkey o Violentmonkey si quieres utilizar este script.

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

Tendrás que instalar una extensión como Tampermonkey o Violentmonkey para instalar este script.

Necesitarás instalar una extensión como Tampermonkey o Userscripts para instalar este script.

Tendrás que instalar una extensión como Tampermonkey antes de poder instalar este script.

Necesitarás instalar una extensión para administrar scripts de usuario si quieres instalar este script.

(Ya tengo un administrador de scripts de usuario, déjame instalarlo)

Tendrás que instalar una extensión como Stylus antes de poder instalar este script.

Tendrás que instalar una extensión como Stylus antes de poder instalar este script.

Tendrás que instalar una extensión como Stylus antes de poder instalar este script.

Para poder instalar esto tendrás que instalar primero una extensión de estilos de usuario.

Para poder instalar esto tendrás que instalar primero una extensión de estilos de usuario.

Para poder instalar esto tendrás que instalar primero una extensión de estilos de usuario.

(Ya tengo un administrador de estilos de usuario, déjame instalarlo)

// ==UserScript==
// @name           Smile@Amazon
// @name:de        Smile@Amazon
// @description    Redirects any Amazon shopping site to its Smile representation
// @description:de Leitet jede Amazon Shopping Seite zu ihrem Smile Äquivalent um
// @namespace      zScript
// @include        https://www.amazon.tld/*
// @icon           https://smile.amazon.com/favicon.ico
// @version        1.2
// @grant          none
// @require https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js 
// ==/UserScript==

// I created this script because any other Script redirecting to Amazon Smile has one or another flaw
// Most Scripts check for only one TLD like .COM, this script should work for all domains Tampermonkey supports.
// As Amazon redirects its shopping site always to the HTTPS protocol and the WWW subdomain, i only include httpS://WWW.amazon...
// As Amazon prevents to be included in Frames from other sites, i only prevent redirection if the top window is already smile.amazon
// This way i leave (i)frames created by smile.amazon the way Amazon created them, hoping they know what they're doing.
//
// This edited script will only redirect if the page exists (a problem for sites that dont have amazon smile such as Amazon JP)
(function() {
    'use strict';
    if(top.location.href.match(/^http(?:s)?:\/\/smile\.amazon\.[^/]+\//i) === null){
      var xhr = new XMLHttpRequest();
      $.ajax({
        url:window.location.href.replace(/^http(?:s)?:\/\/www\./i, "https://smile."),
        success: function() {
          if(xhr.responseURL.match(/^http(?:s)?:\/\/smile\.amazon\.[^/]+\//i) !== null) {
            window.location.replace(window.location.href.replace(/^http(?:s)?:\/\/www\./i, "https://smile."));
          }
        },
        xhr: function() {
         return xhr;
    		}
	  	});  
    }
})();