In the following website, this code works in console but not in userscript.
Console code
if (window.location.href = "n12.co.il") {
alert("Hi");
}
User script code
// ==UserScript==
// @name New Userscript
// @match https://*
// ==/UserScript==
window.addEventListener('load', () => {
if (window.location.href = "n12.co.il") {
alert("Hi");
}
});
What may cause this situation?
Is this a *Monkey script?
So most likely this is because Tampermonkey scripts default to running at DOMContentLoad time, which means that the load
event has already passed. If you need it to run at load time, tell the script to @run-at document-start
; otherwise, just call your function normally: (function() { //Your Code here })();
After reading your post I have tried both solutions but sadly they don’t work, the code still doesn’t run on that website.
So there’s two major problems with that line.
- You’ve confused assignment and comparison.
=
is not ==
.
- window.location.href contains the protocol and any filenames attached to it; as such, it will never match “n12.co.il” exactly. You may be trying to do an
includes
test.
1 Like
That is a beginner mistake that I think even experienced programmers make. I do not know if it works in JavaScript (I assume so) but some programmers do something as in the following.
if ("n12.co.il" == window.location.href)
And then if (and only if) =
is used instead of ==
then that is a syntax error.
1 Like