Скриптът Greasemonkey за промяна на URL не работи?

Току-що се опитах да направя този скрипт:

// ==UserScript==
// @name           Link Bypasser Script
// @include *http://onion.com/*
// @run-at      document-start
// ==/UserScript==

var oldUrl  = window.location;

var newURL  = "http://localhost:8887/processor.php?link=" + oldUrl;
window.location.replace (newURL);

„Включвам“ още url адреси, но не мисля, че това е уместно за показване, както и да е, този скрипт мислех, че ще превърне например http://onion.com/4GUTDTA в http://localhost:8887/processor.php?link=http://onion.com/4GUTDTA, но нищо не се случва:

Преди това опитах:

var oldUrlPath  = window.location.path;

с:

+ "http://localhost:8887/processor.php?link=" + oldUrlPath

Което обаче го промени, но добави само тази връзка преди пътя, което има смисъл, защото използвах window.location.path. Аз също се опитах да използвам

 var oldUrl  = window.location.href;

което не направи нищо.


person DisplayName    schedule 14.03.2016    source източник


Отговори (2)


Трябва да кодирате низ с encodeURIComponent, преди да го добавите към URL:

var oldUrl  = window.location.href;
var newURL  = "http://localhost:8887/processor.php?link=" 
              + encodeURIComponent(oldUrl);
window.location.replace (newURL);
person trincot    schedule 14.03.2016
comment
Не знам дали е свързано с вашия код или не, но нищо не се случва. Вероятно нещо не е наред в началото. - person DisplayName; 15.03.2016
comment
Бих искал да разбера защо не работи за вас. Копирах това на моята машина с GreaseMonkey и работи перфектно. Приетият отговор не работи добре, тъй като дублира URL аргументите. Използвате ли @grant в заглавката на GreaseMonkey? Предположих, че не, защото не е във въпроса. - person trincot; 16.03.2016

person    schedule
comment
Не разбирам как това може да е правилно. Той добавя частите за търсене и хеш два пъти към новия URL адрес. - person trincot; 16.03.2016
comment
@trincot трябва ли да извикате decodeURIComponent() преди да извикате window.location.replace? Освен това премахнах допълнителните части за търсене и хеширане - person koolhuman; 16.03.2016