That script is checking the pathname
but setting the search
part of the URL. In addition, it has at least one syntax problem. Also, use host
rather than hostname
; it's more robust and portable.
So your script would be like:
// ==UserScript==
// @name Youtube Tape Mode
// @match *://*.youtube.com/watch?*
// @run-at document-start
// @grant none
// ==/UserScript==
var oldUrlSearch = window.location.search;
/*--- Test that "&vhs=1" is at end of URL, excepting any "hashes"
or searches.
*/
if ( ! /&vhs=1$/.test (oldUrlSearch) ) {
var newURL = window.location.protocol + "//"
+ window.location.host
+ window.location.pathname
+ oldUrlSearch + "&vhs=1"
+ window.location.hash
;
/*-- replace() puts the good page in the history instead of the
bad page.
*/
window.location.replace (newURL);
}
Note that YouTube URL's always have something in the search
part of the URL, so this code is fine. For other sites, you may need an additional check and to add either &vhs=1
or ?vhs=1
depending on whether the search was initially blank.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…