ログインしていないときに間違ったログインページにリダイレクトするサイトがあります。Greasemonkey発行のリダイレクトは、リダイレクトラインの後にalert()が呼び出された場合にのみ機能します
<html>
<head>
<meta name="robots" content="noindex,nofollow">
<script type="application/javascript">
window.location.href = '/access/login?return_to=' + encodeURIComponent(window.location.href);
</script>
</head>
</html>
実際のページには、200 OKとLocation:
ヘッダーがロードされています。 JavaScriptは間違ったページにリダイレクトするならば、正しいログインURLに私をオフに送信し、そこにある
// ==UserScript==
// @name Fix buggy login redirect
// @namespace [email protected]
// @description Fixes the buggy redirect that redirects to the wrong login page
// @include https://internal.domain/*
// @version 1
// @grant none
// @run-at document-start
// ==/UserScript==
window.addEventListener('beforescriptexecute', function(e) {
if (document.getElementsByTagName("script")[0].text.trim() === "window.location.href = '/access/login?return_to=' + encodeURIComponent(window.location.href);") {
window.location.replace('https://example.com');
alert(" ");
}
}, true);
私のスクリプトをチェック:
は、この問題を解決するために、私はGreasemonkeyのpageload前に実行するスクリプトを構成しました。
alert()
がある場合、このスクリプトは正常に動作します。 alert()
を削除すると、ページは壊れたログインページにリダイレクトされます。しかし、alert()
がの場合、警告ボックスは表示されませんが、はになります。適切なページにリダイレクトされます。
alert()
は実行されていないようですが、削除してもらいたいページを目的のページにリダイレクトすることができます。
この問題について私の質問:
- はなぜこれが起こっていますか?タイミングに問題がありますか?
- 役に立たなくても正しく動作させるにはどうすればいいですか
alert()
?
ああ!!それはそれを説明する。それを試して、それはすばらしく動作します。私は以前にstopPropagationについて知っておらず、preventDefaultも知っていませんでした。あなたの時間をありがとう! –
あなたは大歓迎です。喜んで助けてください。 –